Puree the garlic and ginger in a food processor or blender with 1/4 cup water. Toast the coriander and cumin seeds in a small skillet over medium-high heat until fragrant, about 3 minutes, and then pulse until finely ground in a spice grinder.
Whisk together 2 tablespoons of the ginger-garlic puree, 2 teaspoons of the cumin-coriander mixture, the yogurt, 1 1/2 teaspoons of the paprika, the lemon juice, 1/2 teaspoon of the sugar, 1/4 teaspoon of the turmeric, the cayenne, 1 teaspoon salt and 1/4 teaspoon black pepper. Toss in the chicken to coat and then cover the bowl with plastic wrap and marinate in the refrigerator for 2 to 4 hours.
Heat the butter in a Dutch oven or heavy-bottomed wide pot over medium heat. Add the onions and serrano peppers and cook until the onions are soft and tender, about 5 minutes. Stir in 2 tablespoons of the ginger-garlic puree and the remaining cumin-coriander mixture, paprika and turmeric constantly for about 3 minutes to cook the spices, and then add the remaining 1 teaspoon sugar, the tomatoes with all their juice and 1 1/2 cups water. Gently simmer partially covered for 25 minutes over medium-low heat.
Preheat the broiler. Scrape off the excess marinade from the chicken thighs and lay them spaced apart on a rack placed over a baking sheet. Lightly sprinkle the chicken with salt and place 5 inches from the broiler. Broil for about 5 minutes, and then flip the chicken pieces and broil until the chicken is just cooked through and registers 165 degrees F on a meat thermometer, 3 minutes longer. Transfer to a large bowl.
Stir the cream and garam masala into the sauce and simmer for an additional 5 minutes. Pour over the chicken and stir in the cilantro, combining to coat the chicken. Divide evenly among 4 plates and serve with steamed rice.