In a mixing bowl, combine yogurt, lemon juice, garam masala, cumin, coriander, paprika, turmeric, salt, garlic, and ginger. Add chicken pieces and toss to coat. Cover and refrigerate for at least 30 minutes (or up to overnight) to marinate.
Preheat your grill or grill pan over medium-high heat. Once hot, add the marinated chicken pieces. Grill for about 6-8 minutes, turning occasionally, until the chicken is cooked through and has a nice char. Remove from heat and set aside.
In a large skillet or saucepan, heat vegetable oil over medium heat. Add finely chopped onion and sauté until soft and translucent, about 5 minutes.
Stir in the minced garlic and ginger, cooking for an additional minute until fragrant.
Add the crushed tomatoes to the skillet. Let it simmer for about 10 minutes, allowing the sauce to thicken and flavors to meld.
Pour in the heavy cream, followed by the garam masala and additional cumin. Stir to combine and let the sauce simmer for another 5 minutes. Season with salt to taste.
Add the grilled chicken pieces into the sauce and gently mix until the chicken is fully coated. Let it simmer for another 5 minutes to soak up the flavors.
Serve hot, garnished with fresh cilantro, alongside rice or naan.