Prep the base. Add chopped onion, garlic, and ginger to the crockpot. Stir in tomato sauce, tomato paste, garam masala, coriander, cumin, paprika, chili powder, turmeric, cardamom (if using), salt, and pepper. Mix well to make a thick, fragrant sauce base.
Add the chicken. Nestle the chicken thigh pieces into the sauce, coating them fully.
No need to sear—slow cooking will keep them tender.
Cook low and slow. Cover and cook on Low for 5–6 hours or on High for 2.5–3.5 hours, until the chicken is very tender and easily pulls apart with a fork.
Stir in richness. About 20 minutes before serving, stir in coconut milk (or heavy cream), ghee or butter, and lemon juice. Taste and adjust salt and heat. If you like extra creaminess, whisk in the yogurt last, off heat, to prevent curdling.
Thicken if needed. If the sauce seems thin, leave the lid slightly ajar for 15–20 minutes on High to reduce.
You can also mash a few pieces of chicken into the sauce to help it thicken naturally.
Finish and serve. Garnish with chopped cilantro. Serve hot over fluffy basmati rice or with warm naan to scoop up the sauce.