Heat the oil in a large saucepan, add the onion and garlic and cook over a medium heat for 2–3 minutes until softened. Add the sweet potatoes and red pepper and cook for 2 minutes.
Stir in the chilli powder, tomatoes, stock and all the beans and bring to the boil. Reduce the heat, cover and simmer gently for 20–25 minutes until the vegetables are tender. Season to taste with salt and pepper.
Add the chocolate and coriander and cook for a further 2–3 minutes. Serve with long-grain rice topped with spoonfuls of soured cream.