In a large bowl, mix together the yogurt, lemon juice, salt, half of the garam masala, chili powder, and turmeric. Add in the chicken pieces and toss to coat.
Cover and place in the refrigerator to marinate for at least 1 hour, and up to 24 hours.
In a large cooking pot or Dutch oven, heat the vegetable oil over medium heat. Once the oil is shimmering, add the chicken and the marinade to the pot.
Stir occasionally, and cook until the chicken is browned and no longer pink, about 4 to 5 minutes.
Add the remaining garam masala, brown sugar, cumin, cardamom, cinnamon, ground cloves, ginger, garlic, tomatoes, and heavy cream. Simmer uncovered for 10 to 15 minutes, stirring occasionally.
Stir in the butter until melted.
Remove from heat and taste for salt and pepper; adjust accordingly.
Garnish with chopped cilantro, and serve immediately.