Soak about ⅓ cup of cashews in warm water for about 15 minutes and then grind it into a paste and keep it aside. This will be the cashew paste for the gravy.
Blanch about 4 tomatoes and peel the skin. Puree the tomatoes and this will be puree to be used in the recipe. I was lazy and used a can of diced tomatoes.
In a wide pan, heat 1 tbsp of oil or butter and add the whole spices (Bay leaf, cinnamon, cardamom, cloves, and nutmeg powder). Fry for a minute until they are aromatic.
Now add the chopped onions, ginger, and garlic, and sauté until the onions turn golden brown. Let this mixture cool and then grind it in a blender to make a paste.
In the same pan, add 2 tbsp of oil/butter and then add the ground paste. Fry the paste for a couple of minutes and then add the tomato puree. Cook the mixture for about 5 minutes and then add the turmeric powder, red chili powder, and the garam masala and mix well.
Cover the pan and cook it for about 8-10 minutes. Then remove the lid and cook further for 5 minutes, until the oil starts to ooze out from the gravy.
Now add the cashew paste and about a cup of water and bring it to boil. Let this simmer for 10 minutes until the gravy thickens to the required consistency.
Add the fresh cream or milk and cook on low flame for about 5 minutes to prevent the cream/milk from curdling.
Add the Kasuri methi and mix well.
Just before serving, heat the gravy gently. Place the koftas on the serving dish and then add the gravy over it.
It will be a good idea to add just enough koftas to the gravy that you are serving right away. Do not add more than needed as they will become soft and mushy. These koftas are a little more forgiving than malai kofta and hold their shape pretty well in the gravy.