1. In a bowl, combine the chicken and all the marinade ingredients; marinate for 30 minutes to an hour (or overnight if time allows).
2. Heat the oil in a big skillet or pot over medium-high heat. When the chicken is sizzling, add it in batches of two or three, being careful not to overcrowd the pan. Fry for 3 minutes per side until browned. Set aside to stay warm. (You'll finish cooking the chicken in the sauce.)
3. Heat the butter or ghee in the same pan. Fry the onions until they begin to sweat (approximately 6 minutes), scraping away any browned bits clinging to the bottom of the pan.
4. Add garlic and ginger and sauté for 1 minute until fragrant, then add ground coriander, cumin and garam masala. Let cook for about 20 seconds until fragrant, while stirring occasionally.
5. Heat the butter or ghee in the same pan. Fry the onions until they begin to sweat (approximately 6 minutes), scraping away any browned bits clinging to the bottom of the pan.
6. Remove from heat, transfer to a blender, and process until smooth. To help it blend, add a few teaspoons of water (up to 1/4 cup). Work in batches according to the size of your blender.
7. Pour the puréed sauce back into the pan. Combine the cream, sugar, and crushed kasoori methi (or fenugreek leaves) into the sauce. Return the chicken and fluids to the pan and simmer for another 8-10 minutes, until the chicken is cooked through and the sauce is rich and boiling.
Garnish with chopped cilantro and serve with fresh, hot garlic butter rice and fresh homemade Naan!