In a large bowl, combine yogurt, lemon juice, cumin, coriander, garam masala, turmeric, paprika, salt, and black pepper. Add the chicken pieces, ensuring they are well coated. Cover and marinate in the refrigerator for at least 1 hour, or overnight for best flavor.
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 marinated chicken to the skillet, cooking until browned on all sides, about 5-8 minutes.
Pour in the crushed tomatoes and bring to a simmer. Reduce the heat and let it cook for about 15 minutes, stirring occasionally.
Stir in the heavy cream and let it simmer for another 5-10 minutes until the sauce thickens slightly.
Taste and adjust seasoning if necessary. Serve hot, garnished with fresh cilantro.