In a large bowl, combine the 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 results.
Heat the vegetable oil in a large skillet over medium heat. Add the chopped onion and sauté until softened and golden, about 5-7 minutes.
Stir in the minced garlic and grated ginger, cooking for an additional 1-2 minutes until fragrant.
Add the marinated chicken to the skillet, cooking until the chicken is browned on all sides, about 5-8 minutes.
Pour in the tomato sauce and bring to a simmer. Reduce the heat to low and cook for 15-20 minutes, stirring occasionally, until the chicken is cooked through.
Stir in the heavy cream and simmer for another 5 minutes. Adjust seasoning if necessary.
Serve hot, garnished with fresh cilantro, over rice or with naan bread.