Combine cumin, paprika, coriander, turmeric, and cayenne in a small bowl and mix well.
Set aside 3 tablespoons of spice mixture.
Combine remaining 6 tablespoons spice mixture, 8 cloves garlic, 2 tablespoons ginger, 2 cups yogurt, ½ cup lemon juice, and ¼ cup salt in a large bowl and whisk to combine.
Pour marinade all over chicken pieces, using hands to coat every surface. Cover loosely and refrigerate. Refrigerate and allow to marinate for at least 4 hours and up to 8, turning occasionally.
Meanwhile, heat butter or ghee in a large Dutch oven over medium-high heat until melted and foaming subsides.
Add onions, remaining grated garlic, and remaining ginger.
Cook, stirring frequently, until dark and beginning to char in spots, about 10 minutes.
Add reserved spice mixture and cook, stirring frequently, until fragrant, about 30 seconds.
Add tomatoes and half of cilantro, scraping up any browned bits from bottom of pan with a spoon.
Simmer for 15 minutes, then puree using a hand blender or by transferring to a tabletop blender in batches.
Stir in cream and remaining 1/4 cup lemon juice. Season to taste with salt, then set aside until chicken is cooked.
Line a broiler pan with heavy-duty aluminum foil and preheat the broiler to high with the rack set 6 inches below broiler element. Wipe excess marinade off chicken and place on foil-lined pan, flesh side up. Broil until charred and blackened on surface, about 8 minutes (chicken will not be completely cooked through—this is ok). Transfer to cutting board and let rest 10 minutes.
Remove chicken from bone using a sharp knife and cut into rough bite-sized chunks. Transfer chicken chunks to pot of sauce.
Bring to a simmer over medium heat and cook, stirring frequently, until chicken is just cooked through, about 10 minutes.
Sprinkle with remaining cilantro, then serve immediately with rice or Grilled Naan .