In a bowl, combine yogurt, lemon juice, turmeric, garam masala, cumin, paprika, and salt. Add chicken and mix well. Cover and marinate for at least 1 hour or overnight.
Melt butter in a large skillet over medium heat. Add onions and cook until golden.
Stir in garlic and ginger. Cook for 1–2 minutes until fragrant.
Add marinated chicken (discard excess marinade) and cook until browned on all sides.
Stir in tomato sauce and simmer for 10 minutes.
Pour in heavy cream and simmer for another 10–15 minutes until sauce thickens.
Garnish with chopped cilantro and serve hot with rice or naan.