Chop onions and tomatoes into cubes. Add water and cook them for 4-5 mins until they are cooked and there is no raw smell. Let them cool down completely. Make a smooth puree out of it. Set aside.
Powder the cashews into a finely in a mixer/blender and add ½ cup of water, make a smooth paste out of it – this is the cashew cream/milk. Set aside.
Chop Paneer into cubes. If taken out of fridge, immerse them in hot water for 5-6 mins. Set aside.
In a pan, heat butter/oil. Add dried bay leaf and ginger garlic paste. Sauté until the raw smell is gone. Add the pureed onion tomatoes. Sauté until the butter/oil starts to leave from edges.
Add all the masala powders – red chilli powder, Kashmiri chilli powder, turmeric powder, sugar and salt. Mix well and cook for 3-4 mins on low flame until they are cooked. Add some water and let the gravy boil on low heat.
Add the prepared cashew cream/milk and mix well. Soon the gravy begins to thicken – add ½ cup of water as needed and boil the gravy for a couple of mins.
Crush kasoor Methi/Dried fenugreek leaves between your palms and add it to the gravy. Add garam masala powder and mix well.
Add cubed paneer and mix well. On low heat boil the gravy for another 1-2 mins. Remove from heat.
Serve hot with rotis, kulcha, paratha or any Indian bread.