Mix the chicken with all the marinade ingredients in a bowl, for 30 minutes to one hour (or overnight if the time allows)
Heat oil in a large skillet or pot over medium-high heat. When sizzling, add chicken pieces in batches of two or three, making sure not to crowd the pan. Fry until browned for only 3 minutes per side. Set aside and keep warm.
Heat ghee in the same pan, sauté the onions until they start to sweat, while scraping up any browned bits stuck on the pan.
Add garlic and ginger and sauté for 1 minute, then add ground coriander, cumin and garam masala and cook for 20 seconds while stirring.
Add tomatoes, cashew nuts, chili powder and salt. Let the mix simmer for about 10-15 minutes, stirring occasionally until the sauce thickens and becomes a deep brown-red color.
Remove from heat, scoop mixture into a blender and blend until smooth. You may need to add a couple tablespoons of water to help it blend (up to 1/4 cup). Work in batches depending on the size of your blender.
Pour the puréed sauce back into the pan. Stir the cream, sugar and crushed kasoori methi (or fenugreek leaves) through the sauce. Add the chicken with juices back into the pan and cook for an additional 8-10 minutes until chicken is cooked through and the sauce is thick and bubbling.
Garnish with chopped cilantro.