In a bowl, combine yogurt, lemon juice, garam masala, cumin, turmeric, and chili powder. Add chicken and coat well. Let it marinate for at least 30 minutes.
Melt butter in a large pan. Add onion, garlic, and ginger. Cook until soft and fragrant.
Add marinated chicken to the pan and cook until no longer pink.
Stir in tomato puree. Simmer for 10 minutes, letting the flavors come together.
Reduce heat and add cream. Stir gently and let it simmer another 10 minutes until the sauce thickens slightly.
Season with salt, garnish with cilantro, and serve warm with rice or naan.