Marinate chicken: In a large bowl, place the chicken, lemon juice and chilli. Stir to combine and marinate in the fridge for 20 minutes.
Remove chicken from fridge after 20 minutes, and add yoghurt, ginger and half of the garam masala spice. Stir with a spoon to mix together.
Preheat a large frypan or skillet on the stove (on high heat), and preheat oven to 180 degrees C (Fan oven) or 350 degrees F.
Add butter to the frypan/skillet, add the chicken pieces in batches and brown them off on each side. As they are browned, place them into a large casserole dish with a lid. Repeat this process until all chicken thighs have been browned.
In the same pan/skillet, add the onion and garlic and cook until garlic becomes translucent and begins to soften. (Don’t worry if there are black bits on the bottom of the pan, this adds to the flavour)
Add the remaining garam masala spice, ground coriander, ground cumin and sweet paprika. Stir to mix into the onion and garlic.
Remove the pan from the heat and stir in the tomato paste, tomato puree, stock/broth, cinnamon stick and honey if using.
Pour over the chicken thighs in the casserole dish. Cover with lid or foil and cook for 90 minutes at 180 degrees C (Fan oven) or 350 degrees F
Once butter chicken is cooked, add in the cream and stir in with a spoon.
If further thickening is required, make a cornflour/cornstarch slurry, but adding 2 tablespoons to cornflour/cornstarch to 2 tablespoons water, stir and add in whilst stirring. Continue stirring through to thicken sauce.