In a bowl, mix the Greek yogurt, lemon juice, garam masala, turmeric, cumin, coriander, paprika, and salt.
Add the chicken pieces to the marinade and let sit for at least 15 minutes (or up to overnight).
Heat butter in a large pan over medium heat. Add onions and sauté until soft.
Add garlic and ginger, cooking for another minute until fragrant.
Stir in the crushed tomatoes and cook for 5 minutes.
Add the marinated chicken to the pan and cook until no longer pink.
Pour in the heavy cream and cayenne pepper (if using), and simmer for 10 minutes.
Stir in honey or sugar for balance, then garnish with fresh cilantro.
Serve hot with basmati rice or naan.