Soak cashew nuts in 1/4 cup warm water for 10 to 15 mins and grind to a smooth paste and keep aside.
Cut the tomatoes roughly and transfer to a blender. Grind to a smooth paste and keep it aside. I did not blanch the tomatoes.
Slit the green chilies lengthwise and remove the seeds. Cut the ginger into juliennes. Keep aside a few juliennes for garnishing.
Cube the paneer and keep it ready. I used Malai Paneer, so I did not sauté the cubes in butter and used it as it is.
Heat a pan with butter and oil together. Add slit green chilies and sauté till the color changes and becomes transparent. Add the ginger juliennes and sauté for a few more seconds.
Add the tomato puree, sugar, a pinch of salt and mix well. Close the pan with a lid, leaving a small gap and let the puree cook over medium-low flame for 15-20 mins. This will prevent the puree from splashing out of pan. Mix in between at regular intervals. All the water moisture would have evaporated and the puree will look almost like a thick paste now.
Add coriander powder, red chili powder, mix well and cook for 2 more mins. The mixture will further thicken and look almost dry.
Add the ground cashew nut paste, mix well and cook for 5 mins.
Add cubed paneer, milk, mix well and let it cook for 5 mins. Switch off flame and take off stove.
Immediately add garam masala powder, kasuri methi, mix well and close the pan with a lid and let it rest for 5 mins for the flavors to merge well.
Transfer to a serving bowl and garnish with ginger juliennes. Serve with hot phulkas, rotis or Naans along with sliced onions and lemon.