Combine garlic, ginger, turmeric, garam masala, coriander, and cumin in a small bowl.
In a medium bowl, whisk together yogurt, salt, and half of spice mixture until well-combined. Add chicken to the yogurt mixture and gently stir to coat chicken on all sides. Cover and chill at least 4-6 hours or up to 2 days. Cover and chill remaining spice mixture.
Heat ghee in a large, deep skillet over medium heat. Once hot, add onion, tomato pasta, cardamom, and crushed red pepper flakes. Cook, stirring often, until onion is soft, about 5 minutes. Add remaining half of spice mixture and cook an additional 3-4 minutes, stirring often.
Crush tomatoes one at a time over the skillet using hands. Increase heat to medium-high and bring to a boil. Reduce heat to low and simmer 8-10 minutes, stirring often.
Add half and half and chopped cilantro. Simmer, stirring occasionally, until sauce thickens, about 30-40 minutes.
Meanwhile, preheat broiler to 500 degrees F. Line a rimmed baking sheet with foil and set a wire rack on top. Mist wire rack with cooking spray and arrange chicken on rack. Broil chicken until blackened in spots (it will not be cooked through), about 10 minutes.
Cut chicken into bite-size pieces, add to sauce, and simmer, stirring occasionally, until chicken is cooked through, 8-10 minutes.
Serve over rice and with additional cilantro, if desired.