Marinate the chicken. In a bowl, mix yogurt, ginger, garlic, cumin, coriander, turmeric, chopped chilies, salt, and lemon juice.
Coat the chicken well. Cover and refrigerate for at least 1 hour, preferably 4–8 hours for deeper flavor.
Char the chicken. Grill over medium-high heat or broil on a lined tray until the outside picks up a good char, 4–5 minutes per side. You don’t need it fully cooked—just smoky and browned.
Set aside.
Start the sauce. Heat oil or ghee in a wide pan over medium heat. Add cumin seeds and let them sizzle for 30 seconds. Stir in onions with a pinch of salt and cook until soft and golden, about 8–10 minutes.
Add aromatics and spices. Stir in ginger and garlic.
Cook 1 minute until fragrant. Add coriander, turmeric, and paprika. Cook 30 seconds to bloom the spices.
Add tomatoes. Pour in the crushed tomatoes.
Simmer 5–7 minutes until thick and the raw tomato smell fades. Season with salt and pepper.
Pour in coconut milk. Add coconut milk and bring to a gentle simmer. If it looks too thick, add 1/2 cup stock or water.
Taste and adjust salt.
Finish cooking the chicken in the sauce. Nestle the charred chicken into the pan. Cover and simmer on low 15–20 minutes, turning once, until the chicken is tender and cooked through. Add more liquid if needed for a creamy, spoon-coating consistency.
Brighten and garnish. Stir in lemon or lime juice.
Taste for salt, heat, and acidity. Sprinkle with chopped cilantro and extra chili if you like.
Serve. Spoon over steamed rice or scoop up with warm chapati. Add a wedge of lime on the side.