Start by sautéing your onions in the butter until they they turn translucent. Make sure to keep your heat on medium.
Add in your chopped garlic and ginger and cook for another minute or so.
Add in your garam masala, chili powder, cumin powder, fenugreek leaves, and turmeric and cook for another minute. You may want to turn the heat slightly down to make sure the spices don't burn. Cook until aromatic.
Add in canned tomatoes, salt, and cashews. Let simmer for for 5-7 minutes.
Add in water, bring to simmer, cover your mixture with a lid, and let cook for 25-30 minutes. Make sure to keep checking on the mixture every 5 minutes or so to give it a stir and ensure it doesn't stick/burn.
Wait for the mixture to cool down, and then mix with an immersion blender, or pop into a regular blender. Do not pour a hot mixture into your blender!! It has to be fully cooled.
Strain your blended mixture through a sieve to remove all excess cashew pulp.
Add in your cream, paneer, and sugar, and extra water if needed.
Let mixture simmer for another 10 minutes until paneer is nice and soft.
Garnish with cilantro and more cream.