Start by soaking the beans overnight and then rinse them and put them in a medium-sized thick-bottomed saucepan. Cover with fresh water and bring to the boil. Add a couple of bay leaves to the water and simmer, covered, for about an hour until the beans begin to soften. (You could use a couple of cans of ready cooked beans if you prefer.)
While the beans are cooking, cut the vegetables up into small pieces, reserving a bit of the onion and pepper or chillies to use to garnish the soup.
Dry roast the cumin seeds in a pan and grind them with the peppercorns.
Take the bay leaves out of the cooked beans and add the vegetables, spices and salt. Simmer for about 30 mins until everything is well cooked.
Mash the beans up a bit with a potato masher – you want some to break down the beans and thicken the soup but some beans should remain whole.
Add the chocolate (optional) which gives the soup a richer flavour and simmer for another 10 minutes stirring occasionally.
Ladle the soup into bowls and garnish with a dollop of yoghurt or a swirl of olive oil and sprinkle on the remaining onion, pepper/chilli and a few coriander leaves. I serve it with warm pitta bread.
If you have any leftover then you can reduce it and use it like refried beans.