In a large bowl, combine the yogurt, lemon juice, garam masala, cumin, coriander, turmeric, cayenne pepper, and salt. Add the chicken pieces and mix well to coat. Cover and marinate in the refrigerator for at least 1 hour, or overnight for best results.
Preheat your oven to 400°F (200°C). Line a baking sheet with aluminum foil and place a wire rack on top. Arrange the marinated chicken pieces on the rack and bake for 20-25 minutes, until cooked through and slightly charred.
While the chicken is baking, heat the vegetable oil in a large skillet over medium heat. Add the chopped onion and sauté until golden brown, about 5-7 minutes.
Stir in the minced garlic and ginger, cooking for an additional 1-2 minutes until fragrant.
Add the crushed tomatoes to the skillet and simmer for 10 minutes, stirring occasionally.
Reduce the heat to low and stir in the heavy cream. Cook for another 5 minutes, allowing the sauce to thicken slightly.
Once the chicken is done baking, add it to the sauce and stir to combine. Simmer for an additional 5 minutes to meld the flavors.
Garnish with fresh cilantro before serving.