Heat 1 tablespoon butter in a saucepan.
Add the onions, garlic and ginger and saute, stirring frequently, until the onions turn translucent.
Add the tomatoes and the cashews. Cook, covered but stirring frequently, until the tomatoes have reduced to a pulp. Add the coriander powder, turmeric and paprika and continue cooking for another 5 minutes. Turn off the heat.
Carefully, taking care not to burn yourself, ladle out the tomato-onion-spice mixture into a blender. Or, if you have an immersion blender, use that. Add a cup of water or preferably vegetable stock and blend into a very, very smooth paste.
Pour the sauce back into the saucepan. For an even smoother texture to your sauce, you can strain it. Add the garam masala and stir in.
Add the kasoori methi and sugar and stir well. If the sauce looks too thick, you can thin it out with more vegetable stock. Bring the sauce to a boil over medium heat.
Add the cubes of tofu, season with salt, bring back to a boil, and continue to cook, covered for another five minutes.
Turn off the heat, garnish with cilantro, and serve hot with naan or roti or rice.