In a pan on medium heat, add butter and onions and garam masala and cook till onions are golden.
Add in the ginger garlic paste and cook for a minute.
Blend cashews with a few tbsp milk into a coarse paste. Add paste to the pan.
Add in the salt, sugar and fenugreek leaves and mix well. Cook for 4-5 minutes on medium-low until the paste starts to thicken.
Add in the peas, cashew cream/coconut milk, grated tofu and mix well. Taste for salt and sugar and adjust. Cook covered for another 2-3 minutes to bring the milk to a boil. Cook without cover if you like a thicker curry. Sprinkle chili flakes or black pepper for some spice.
The recipe is very flexible, you can adjust the quantities of cashews and other things depending on your preferences for creamier, cheesier, richer, spicier versions.