First make the masala.
Heat the oil in a heavy bottomed pan and add the onions, cook over a medium heat until golden brown, stirring often.
Stir in the garlic and ginger and cook for a couple of minutes, until thoroughly golden
add the chilli powder, salt and tomato puree. Stir well.
Pour in the chopped tomatoes and bring to a simmer. Simmer, stirring often for 15 minutes until he tomatoes have fully broken down. At this stage you can let the masala cool and finish off the dish later, so just continue from here.
Add the tomato puree, salt, sugar, and spices to the warm masala. Cook for 5-10 minutes
Add 100ml water and the frozen peas and simmer for 10 minutes.
Stir in the tofu cubes, then a couple of minutes later add the cream.
Taste and adjust any seasoning.
Serve.