Marinate the chicken: Whisk together cumin, coriander, cayenne, and salt. Rub this mixture into the chicken, covering both sides well. Lay the chicken in a shallow bowl and cover; refrigerate so that spice mixture is absorbed into the chicken for 1 hour. In a separate, shallow bowl, whisk the yogurt, garlic, and ginger. Cover and refrigerate until ready to cook.
Make the masala sauce: Heat butter in a large Dutch oven set over medium heat. Add onion and cook, stirring frequently, until tender, 5 minutes. Add garlic, ginger, jalapeno, cumin, coriander, and garam masala. Stir and allow the mixture to cook, stirring constantly, for 3 minutes. Add crushed tomatoes, sugar, and salt. Bring to boil. Turn heat down to low, cover, and simmer for 15 minutes, stirring occasionally. Stir in the half and half and return to simmer. Take the Dutch oven off of the burner, cover to keep warm, and set aside while you make the chicken.
Make the chicken: Place your top oven rack about 5 inches from the heating coils and preheat your oven’s broiler. Line a baking sheet with foil and spray well with cooking oil. Remove your yogurt mixture from the refrigerator and dip each piece into it, leaving a thick layer of yogurt clinging to it, then lay the chicken onto the sheet. Broil chicken until it is lightly charred in spots, about 15 minutes, flipping halfway.
Remove the chicken from the oven and let it sit on the baking sheet for five minutes to cool slightly and retain its juices. Cut into small (inch-long) pieces and stir into warm sauce. Stir in cilantro and serve.