Combine chicken with all of the ingredients for the chicken marinade; mix well, cover and refrigerate overnight.
On high heat grill chicken until the edges have charred slightly. Set aside
Heat butter and oil together. Fry the onions for approx. 6 minutes with a pinch of salt until the onions start to brown. Stir and scrape up any browned bits stuck on the bottom of the pan
Add garlic, ginger and cardamom. Sauté for 1 minute until fragrant, then add masala and cook for a further 30 seconds until fragrant, all the while stirring.
Add crushed tomatoes,chili powder and salt. Cook on med-low heat for about 10-15 minutes, stirring occasionally until sauce thickens and changes colour slightly.
Remove from heat. Add the cooked tomato mixture along with water into a food processor and blend until smooth.
Using a large sieve, strain the tomato puree, using the back of a spoon to push as much of the puree through. Discard any solids
On medium low heat, add the strained sauce back into the pan. Pour the cream, add honey and the chicken with any juices back into the pan and cook for an additional 8-10 minutes until chicken is cooked through and the sauce is thick and bubbling. Taste and adjust salt and honey as desired.