1. Heat the oil in a large stock pot and fry the onion and carrot with a sprinkling of salt for a couple of minutes until soft. Add the garlic, chilli and garam masala then cook for 5 to 10 minutes over a low heat.
2. Pour in the chopped tomatoes then fill the empty can with water and pour that in too. Bring to the boil and stir in the tomato puree.
3. Add the sweet potato, cauliflower, peas and half the butter. Season and leave to cook until everything is soft and the sauce is thick.
4. Remove from the heat and roughly process with a hand blender (you want it thick and pulpy but not too smooth). Stir through the remaining butter.
5. Half the bread rolls and toast one side. Serve the curry garnished with the chopped coriander and red onion with a lime wedge and the bread on the side.