In a large bowl, combine the yogurt, lemon juice, cumin, coriander, turmeric, garam masala, salt, and pepper. Add the chicken pieces and mix well to coat. Cover and marinate in the refrigerator for at least 1 hour, or up to overnight for best flavor.
Heat the vegetable oil in a large skillet over medium heat. Add the chopped onion and sauté until soft and translucent, about 5 minutes. Stir in the garlic and ginger, cooking for an additional 1-2 minutes until fragrant.
Add the marinated chicken to the skillet, cooking until browned on all sides, about 5-7 minutes.
Pour in the crushed tomatoes and bring the mixture to a simmer. Reduce the heat to low, cover, and cook for 15 minutes, stirring occasionally.
Stir in the heavy cream and simmer for another 10 minutes, allowing the sauce to thicken. Adjust seasoning with salt and pepper to taste.
Serve hot, garnished with fresh cilantro, alongside rice or naan.