Indian tofu, aubergine and potato curry

I veganised this dish from a traditional Indian chicken curry recipe.
Serves 3-4, works for freezing.
For a cheaper but equally nutritious version of this dish, replace the tofu with a tin of chickpeas.

1 block firm tofu (around 250g)
3 medium-sized potatoes
1 small aubergine
4 tomatoes
2 red onions

1 clove garlic
1 cm piece fresh ginger (or 1 tsp ground)
2 tsp ground cumin
2 tsp ground coriander
2 tsp ground turmeric (plus a bit extra of these three spices for frying the tofu)
1 tsp chilli powder
3 cardamom pods
150ml vegetable stock or water

oil for frying
salt and pepper to taste
fresh coriander (optional)

rice or bread to serve

Drain the tofu and chop into chunks. Fry with about half a teaspoon each of cumin, coriander and turmeric. Remove and set aside.

Chop the onions, peel the potatoes, dice the potatoes and aubergine into approx. 2cm chunks.

Heat some oil in a large saucepan and add the powdered spices and the cardamom pods. When it starts to bubble, add the onions, garlic and ginger and fry for five minutes.

Add the potatoes and aubergine and fry for another five minutes. Chop the tomatoes and add to the pan, followed by the stock or water. Cover and cook until the potatoes are soft, adding the tofu near the end of cooking time to heat through. Add salt and pepper if required.

Garnish with the fresh coriander, if using, and serve with rice or appropriate bread.