Cut chicken to ¾ inch pieces and add them to a bowl. Pat dry with kitchen tissues.
Add all the ingredients for marinade - Greek yogurt / hung curd, red chilli powder, turmeric, garam masala, salt, ginger garlic paste, kasuri methi, oil and lemon juice.
Marinate and rest covered for a minimum of 60 mins, overnight is best (refrigerated).
Meanwhile slice the onions and peeled ginger. Heat a pan with oil and begin to saute the onions until transparent (pink), till they lose the raw flavor. While the onions fry, chop the tomatoes.
Add ginger and garlic. Saute for 2 to 3 mins. Lower the heat and stir in red chilli powder.
Add the chopped tomatoes, cashews and salt. Cook on a medium high heat until the tomatoes break down to a mush.
Stir in garam masala, cumin powder (optional), coriander powder, sugar and Cardamom powder.
Turn off and cool down (read notes). Pour 1 cup water to the blender and make a super smooth puree. If required pour ½ cup more. (Some blenders do the best job with no extra liquid added, while some need only little, so adjust depending on your blender)
Wipe down the pan with some tissues and heat it with butter on a low to medium heat.
As the butter begins to melt, stir in green chilli (optional) and red chilli powder (optional). Taste test the onion tomato puree and add the chilli powder accordingly.
Strain the puree directly to the pan. Make sure your pan is not too hot else your spices will burn.
Pour ½ cup hot water and begin to cook the butter masala until it reaches a thick and creamy consistency.
While the butter masala simmers, heat a pan/ skillet with 1 tablespoon oil. When the oil becomes hot, layer the chicken pieces on the pan and cook on a high heat.
When the chicken turns brown at the bottom, turn them to the other side and cook until golden and slightly charred. Depending on the size of your pan, you may need to grill the chicken in batches. Chicken may not be cooked fully at this stage.
When the butter masala turns thick and creamy, pour ½ cup hot water (to rehydrate the chicken) and 1 tablespoon ghee.
Stir in the grilled chicken and let simmer for a 3 to 4 minutes, until the chicken is cooked through and the butter masala reaches a thick and creamy consistency.
Taste test and adjust salt. Add garam masala and kasuri methi.
Stir in the chilled cream. Turn off the heat. Mix and let rest for at least 5 mins. Garnish chicken butter masala with a tablespoon cream and fine chopped coriander leaves. Serve with Butter naan, Jeera rice or plain basmati rice.