In a bowl, combine chicken, buttermilk, turmeric, chili powder, garam masala, and salt. Mix well and marinate for at least 30 minutes.
Heat oil in a large skillet over medium-high heat. Add chicken and cook until lightly browned and fully cooked. Remove and set aside.
In the same pan, melt butter. Add onions and sauté until soft and golden.
Stir in garlic and ginger; cook for 30 seconds until fragrant.
Add tomato puree, cumin, coriander, paprika, and garam masala. Simmer for 10–15 minutes until thick.
Reduce heat and stir in cream.
Add cooked chicken back to the sauce and simmer for 8–10 minutes.
Adjust salt, garnish with cilantro, and serve hot.