01 - Combine chicken pieces with yogurt, lemon juice, turmeric, cumin, garam masala, chili powder, and salt in a large bowl. Mix thoroughly to coat all pieces. Cover and marinate for at least 10 minutes, or up to 1 hour for deeper flavor penetration.
02 - Heat 1 tablespoon butter and vegetable oil in a large skillet over medium-high heat. Add marinated chicken pieces and cook for 5 to 6 minutes, turning occasionally, until lightly browned on all sides but not fully cooked through. Transfer chicken to a plate and set aside.
03 - In the same skillet, add remaining 1 tablespoon butter. Sauté chopped onions for 3 to 4 minutes until softened and golden. Add minced garlic and grated ginger; cook for 1 minute until fragrant, stirring constantly to prevent burning.
04 - Stir in ground coriander, paprika, and cayenne pepper. Toast spices for 30 seconds to release their essential oils. Pour in crushed tomatoes and sugar. Simmer for 5 minutes, stirring occasionally, until the mixture begins to thicken slightly.
05 - Return browned chicken and any accumulated juices to the skillet. Stir to coat chicken completely with the tomato sauce. Simmer for 8 to 10 minutes, or until chicken is cooked through and sauce has reached a rich, velvety consistency.
06 - Reduce heat to low. Pour in heavy cream and stir gently to incorporate. Simmer for 2 minutes to allow flavors to meld. Taste and adjust salt as needed. The sauce should be creamy and coat the back of a spoon.
07 - Transfer butter chicken to a serving dish. Sprinkle generously with chopped fresh cilantro. Serve immediately while hot, accompanied by steamed basmati rice or warm naan bread for soaking up the sauce.