Prepare the seasoning mix. In a container of a blender or food processor pulse 1 chopped onion, 5 cloves of chopped garlic, 2 chopped chili peppers, and a 3-inch knob of chopped ginger. Add a few splashes of water as you pulse until it becomes a paste-like consistency and set aside.
In a medium mixing bowl, combine yogurt, 2 tablespoons of seasoning paste, 2 teaspoons each of chili powder, garam masala, ground cumin and 1 teaspoon of ground coriander. Add the chicken and toss to coat. Place in the fridge to marinate while you make the butter chicken sauce.
In a small mixing bowl combine a tablespoon each of chili powder, garam masala, and cumin, 2 teaspoons of coriander, and ½ teaspoon of optional fenugreek.
Heat a deep large heavy-bottomed pot on medium-high heat. Add ghee and once it begins to smoke a bit, pour in the remaining seasoning paste and saute for 5 minutes, stirring frequently, until fragrant and beginning to brown slightly.
Add the spice mix and cook an additional 5 minutes, while stirring often, until deep in colour, then stir in 3 tablespoons of tomato paste, cooking another 5 minutes, stirring frequently.
Pour in a 28oz can of pureed tomatoes, 2 tablespoons of honey, then season with salt and pepper. Bring the sauce to a boil, then lower heat to simmer, cover, and cook for 20 minutes. Uncover the pot and stir in a 14oz can of coconut milk. Adjust seasoning to taste.
Preheat bbq on high heat. Transfer the marinated chicken onto skewers. Grill the chicken for 10 minutes, turning every 2 to 3 minutes, until lightly charred and cooked through.
Remove the chicken from the skewers and stir into the butter chicken sauce. Continue to simmer for 10 to 15 minutes to incorporate the grilled flavour.
Serve in a bowl with a sprinkling of fresh cilantro and a side of naan, flatbread, rice or potatoes.