First make marinate for chicken by combining garlic, ginger, turmeric, garam masala, coriander, and cumin in a small bowl.
Whisk yogurt, salt, and half of spice mixture in a medium bowl; add chicken and turn to coat. Cover and chill minimum 4 hours. Cover and chill remaining spice mixture.
Heat ghee in a large heavy pot over medium heat. Add onion, tomato paste and cardamom to cook, until tomato paste has darkened and onion is soft.
Add remaining half of spice mixture and cook, stirring often, until bottom of pot begins to brown.
Add tomatoes. Bring to a boil, reduce heat, and simmer, stirring often and cook until sauce thickens.
Add cream and chopped cilantro. Simmer, stirring occasionally, until sauce thickens, 30-40 minutes.
Meanwhile, preheat broiler. Arrange chicken on rack in a single layer. Broil until chicken starts to blacken in spots.
Cut chicken into bite-size pieces, add to sauce, and simmer, stirring occasionally, until chicken is cooked through, 8-10 minutes. Serve with rice and cilantro sprigs.