Gather all your masala ingredients.
In a large dutch oven or saucepan over medium-high heat add ghee, onions, and salt. Cook until the onions have gone from translucent to light golden; this will take about 8 to 10 minutes. Add a tablespoon or two of water, if the onions are sticking to the bottom of the pan.
If using your oven to cook the chicken preheat your grill, or your oven broiler to high with a rack placed 6 inches below the elements, or turn your oven on to 450°F (230°C). Prepare a baking sheet by covering it with aluminum foil, and brush generously with oil.
Add the green chili, if using, and cook another minute. Stir in the ginger garlic paste, cook stirring constantly until the paste no longer smells raw. This will take 2 to 4 minutes.
Reduce the heat to medium. Add the paprika, and cook for 2 minutes. Add the curry sauce spices, and cook a further 2 minutes, stirring frequently.
Stir in the tomato puree bring to a simmer, then cover and reduce heat to low. Simmer for 10 minutes, stirring occasionally. You are looking for the sauce to thicken and turn a darker shade of red-brown.
Meanwhile, start browning the chicken. Even bits of char is good, but there is no need to cook it through; it will be simmered in the sauce before serving. Cooking the chicken can be done on a grill, under a broiler 6 inches away from the elements, in the oven at 450°F (230°C), or in a large frying pan. If cooking on the stovetop, add 1 tablespoon of oil over medium-high heat and sauté in 2 batches so as not to crowd the pan, and brown the chicken well on both sides.
Back to the masala: if using kasoori methi, crush between your fingers and stir in. Turn the heat to medium-low and cook for 5 more minutes.
If you want a silky smooth sauce, blend with a stick of regular butter, until smooth. (See Note 3)
If you used a blender, return sauce to pan. Add the cream or ground cashews, sugar, and butter. Stir to melt the butter.
Add the chicken and yogurt. Simmer for a few minutes until the chicken is cooked through. If you have time, turn the heat to low, and allow spices to mix and mingle for 10 minutes or so. If the sauce is too thick at this point for your taste, add 1 to 4 tablespoons of water.
Optional: Sprinkle with a pinch of extra garam masala at the end.
Taste for final seasonings and serve over rice, sprinkled with coriander/cilantro if desired. Try this homemade naan to go with your masterpiece!