In a bowl, combine yogurt, lemon juice, garam masala, turmeric, and ground cumin. Add chicken and marinate for at least 1 hour.
In a large pan, melt the butter over medium heat. Add onions and cook until softened.
Add garlic, ginger, cumin, paprika, and ground coriander. Cook until fragrant.
Pour tomato sauce into the pan and bring to a simmer. Let it cook for 20 minutes.
Add the marinated chicken into the sauce. Cook for another 15-20 minutes until the chicken is fully cooked.
Stir in heavy cream and simmer for an additional 5 minutes. Season with salt.
Garnish with chopped cilantro and serve with rice.