Start by mixing all the ingredients under marinade and adding the chicken to it. Mix well, cover and set aside for 15-30 minutes while you make the gravy.
For the gravy, heat 1 tablespoon oil and 1 tablespoon butter in a skillet or pan. Add cinnamon, cardamom, cloves, whole red chilies and garlic. Saute for a minute or so till fragrant. Add onions and saute on high heat for 2-3 minutes till pink and translucent. Add tomatoes and cashew nuts. Mix once, reduce the flame to a simmer and cover and cook for 10-15 minutes till the tomatoes start breaking down and becoming slightly pulpy.
Switch off the flame. Transfer to a blender or liquidiser, and blend till smooth. The trick to blending hot foods is to cover the lid with a thick towel and pulsing instead of blending at one go. This ensures that the lid doesn't explode.
In another pan, heat a tablespoon of oil. Add the chicken pieces and sear them on each side for 2-3 minutes on high heat, till theres a char on them. Remove them from the pan and set aside.
Transfer the puree back to the pan, add chilli powder, ketchup, salt and 1/4 cup water. Bring this to a boil. Reduce the flame to low, and cover and cook for 20-25 minutes. Add the chicken pieces and simmer for 10 minutes.
Stir in the kasuri methi and fresh cream.
To smoke the chicken, place a small steel bowl (please don't use plastic) in the middle of the butter chicken while it's still in the pan. Heat a piece of charcoal or lump coal on an open flame till red hot and then place it in the bowl. Pour a teaspoon of oil or ghee over it, and as soon as it starts smoking, cover the pan with a lid. Smoke for 3-4 minutes. Remove the bowl and serve with naan or rice.