In a large bowl, combine yogurt, turmeric, cumin, coriander, paprika, chili powder, salt, lemon juice, garlic, and ginger.
Add the chicken pieces to the marinade, ensuring each piece is well coated.
Cover and refrigerate for at least 30 minutes (or up to 8 hours for deeper flavor).
In the bottom of the slow cooker, add the chopped onions, minced garlic, and grated ginger.
Pour in the crushed tomatoes, water (or chicken broth), garam masala, cumin, coriander, turmeric, chili powder, paprika, sugar, and salt. Stir well to combine.
Add the marinated chicken (with the marinade) to the slow cooker. Stir to coat the chicken in the sauce.
Cover and cook on LOW for 6-8 hours or HIGH for 3-4 hours, until the chicken is tender and fully cooked.
30 minutes before serving, add the heavy cream (or coconut milk) to the slow cooker. Stir well and let it cook for 30 more minutes. Taste and adjust the seasoning as needed.
Serve hot, garnished with fresh cilantro. Pair it with rice, naan, or roti.