In a large zip-top bag, combine the yogurt, minced garlic, lemon juice, grated ginger, garam masala, turmeric, cumin, salt, black pepper, and cayenne; press or stir to blend the spices into the yogurt.
Add the chicken pieces to the bag and massage to thoroughly coat them in the spiced yogurt mixture.
Seal the bag and refrigerate the chicken for at least 3 hours or overnight.
When ready to cook, heat 1 to 2 tablespoons of the butter or ghee in a large skillet over medium-high heat.
Working in batches to avoid crowding, cook the coated chicken pieces 2–4 minutes per side until lightly golden; remove and set aside.
Reduce heat to medium, add the remaining butter to the skillet, then stir in the tomato sauce, heavy cream, tomato paste, and sugar until smooth and combined.
Return the browned chicken to the skillet, reduce heat to medium-low, and simmer, stirring occasionally, about 20 minutes until the sauce thickens and the chicken is cooked through.
Taste and adjust seasoning if needed, then serve garnished with fresh cilantro if desired.