In a saute pan, add cooking oil and heat to medium heat. Add cinnamon stick, peppercorns, cloves, bay leaf, dried red chili to the oil. Allow to cook for 1 to 2 minutes.
Add ginger and garlic pastes and cashews to the whole spices. Cook for an additional 2 minutes.
Add the chopped onions and tomatoes and stir to combine. Cook for about 5 to 7 minutes. Stirring occassionaly.
Remove from heat and allow to cool to the touch. Remove as many of the whole spices you can find. Blend the tomato and onion mixture until smooth.
Return the tomato and onion mixture to the saute pan and cook at medium heat. Add butter, turmeric, garam masala and salt. Also add water and stir to combine. Cook for about 3 minutes.
Add paneer cubes to mixture and allow to heat through. Remove from heat.
Top with kasuri methi and cilanto, if using. Serve warm with buttered naan!