Heat the oil in a large, heavy-based pot or flameproof casserole dish over a medium heat. Add the onions and fry for 3 minutes, stirring. Add the garlic and continue stirring for about 2 minutes longer until the onions are softened, but not brown.
Reduce the heat slightly and stir in the spices. Continue stirring over a gentle heat for a few minutes so the spices release their aroma. Take care not to let the mixture burn.
Stir in the stock and tomatoes with their juice, increase the heat and bring to a boil. Then reduce the heat to a gentle simmer.
Add the chicken, beans and chickpeas to the pot, bring back to a boil, then reduce the heat, cover and leave the soup to cook gently for about10 minutes until the chicken is cooked through and the beans are just tender. Taste a bean to test if it is cooked and cut a piece of chicken in half to make sure it is no longer pink in the centre. Stir in the chopped cilantro and season. (If freezing the soup, add the coriander and remaining ingredients after reheating.)
Ladle the soup into individual bowls, then add a dollop of yogourt to each serving, sprinkle with a little cayenne pepper and garnish with cilantro.
Variations: Extra vegetables can be added if you'd like a chunkier soup. Sliced carrots, zucchini or corn are ideal. If you don't have a can of chickpeas, use canned white or red kidney beans. Green lentils would also work well.
Each serving: 39 g protein, 19 g fat of which 3.5 g saturates, 25 g carbohydrate, 9 g fibre, 441 Calories