In a heavy-bottomed saucepan sauté the onion with a little water, to prevent it from sticking, until translucent. Add the garlic, cumin, chipotle and tomato pastes, and continue to sauté, stirring for 1 minute.
Add the beans and stock, bring to the boil and simmer for 10 minutes.
Meanwhile, mix all the salsa ingredients together.
Remove half the soup from the pan and blend until smooth. Return to the pan and season the soup with the lime juice, salt and pepper.
Serve the soup in hot bowls topped with the salsa.
Notes
To prepare ahead, make the soup, cool and freeze in portions. Defrost over night in the fridge then reheat in a pan/microwave until piping hot. Make the salsa on the day you are going to eat the soup.
If you wish to use dried beans instead of tinned beans, start with 7 oz / 200 g dried beans and cook according to the packet instructions.