Heat a wok or kadhai on medium heat and add butter. Once the butter melts, add onions and fry them till they are translucent and soft.
Add crushed ginger and garlic. Fry them along with the onions for 30 seconds or so and then add cashews and tomatoes. Continue cooking the gravy till the tomatoes turn soft and mushy. Take it off heat and let this gravy cool for at least 10-15 minutes.
Once it has cooled down, grind them to a fine puree. For a smooth and silky texture, pass this puree through a sieve. [Note: I used the soup setting on my Blendtec Blender and I didn't have to sieve it]
Add the sieved puree to the wok or kadhai and add water as needed to get the consistency you desire. Bring this mixture to boil. Do a taste check and add more salt (if needed).
Add honey, cardamom powder,chilli powder and garam masala to this gravy and mix well. Gently fold in the cut paneer pieces. Let the gravy simmer for 5-10 minutes. Switch off heat and add 1/4 cup whole milk or cream to give it a creamy texture.
Powder the kasoori methi by rubbing it between your fingers. Garnish the gravy with kasoori methi and mix well before serving.