Finely chop the onion and garlic.
Heat the oil in a large saucepan and gently sauté the chopped vegetables until soft.
Meanwhile, peel and dice the sweet potatoes and carrots. Chop the red pepper.
Add these to the pot, stir for another minute, then add the spices & chipotle paste and/or tomato purée.
Add the tinned tomatoes and most of the stock to cover the vegetables.
Bring to the boil, cover, turn down the heat and cook for 20 minutes until the sauce and the vegetables are tender.
Turn off the heat. Remove the bay leaf. Add the coriander leaves. Season to taste, then pulse with a stick blender until you get a thick, smooth soup.
Add more stock, then add the drained beans.
Cook for 3-5 minutes, then serve.