Marinate the chicken – In a bowl, mix yogurt, lemon juice, garlic, ginger, turmeric, chili powder, garam masala, and salt. Add chicken chunks, coat well, cover, and refrigerate for 30 minutes (up to overnight).
Cook the chicken – Heat a pan with a little oil, sear chicken until lightly charred and almost cooked through. Remove and set aside.
Make the sauce – In the same pan, melt butter with oil. Sauté onion until golden, add garlic and ginger, then stir in cumin, coriander, garam masala, and chili powder. Cook for 1–2 minutes until fragrant.
Add tomatoes – Pour in canned tomatoes, simmer 10 minutes, then blend with an immersion blender until smooth.
Finish the curry – Return sauce to pan, stir in cream and sugar. Add cooked chicken pieces and simmer for 10 minutes until tender. Adjust salt.
Serve – Garnish with fresh cilantro. Serve hot with basmati rice or naan.