Mix all the ingredients mentioned under marinade,mix well with chicken pieces. Cover and refrigerate for couple of hours(I kept overnight).
For tomato gravy,in a pan add oil and butter.the butter will start to foam. Once the foam reduces,add the whole spices followed by chopped ginger and green chillies. Cook in medium heat for couple of minutes.
Add all the dry spice powders,except garam masala. Saute for couple of minutes.
Add fresh tomato puree,mix well. cook on low heat till it is thick and oil startsto separate.Add salt and sugar mix well and switch off the gas.
While the gravy is resting,Take out the marinated chicken from the refrigerator and thaw.
In a frying pan (I prefer cast iron pan) add few drops of oil and some butter.
Once the butter is really hot,add few pieces of chicken at a time and sear on high heat.
Till the chicken look nicely charred. continue doing the same for rest of the chicken pieces.
Once all chicken is done,return the seared chicken piece to the same pan along with any left over marinade. Continue frying till all the marinade dries up.
Add the tomato gravy to the chicken and de-glaze the pan to get any residual spices from the pan. add Garam masala,mix well.
Add this point if you need little gravy ,then add water. Cook on medium heat till chicken is cooked throughand desired consistency is achieved.
Check for the seasoning,if you find the gravy sour,then to balance the tartness add pinch of sugar.
Before taking the pan off the stove stir in the cream,mix well and give it a boil.
Switch off the gas and sprinkle crushed kasuri methi and coriander.
Serve with naan,kulcha or parathans.