In a bowl, mix yogurt with garam masala, cumin, coriander, turmeric, and chili powder. Add chicken and coat well. Let it marinate for at least 20 minutes.
Heat butter and oil in a large skillet. Add onion, garlic, and ginger. Cook until golden and fragrant.
Stir in the marinated chicken and cook until lightly browned.
Pour in crushed tomatoes, simmer for 15 minutes until the chicken is cooked through.
Stir in cream and let it bubble gently until the sauce thickens.
Season with salt, sprinkle with cilantro, and serve with basmati rice or naan.