Heat oil in a large, deep frypan over medium-high heat. Add mustard seeds and cook, stirring, for 1-2 minutes until starting to pop. Stir in onion, chilli and curry leaves, if using, and cook for 5 minutes. Add cauliflower, kumara, eggplant, carrot, canned tomatoes, garlic, ginger, curry powder, turmeric, stock and 1/2 teaspoon salt, then partially cover and simmer, stirring occasionally, for 30 minutes or until slightly reduced.
Add beans, garam masala, tamarind and half the fresh tomato. Season and cook for 5 minutes until beans are tender.
Divide curry among bowls. Top with cashews, coriander and remaining fresh tomato, then serve.