In a large soup pot, soften the garlic and the onions in a little oil for about 4 minutes. Add all the remaining ingredients except for the ham. Bring to the boil, then cover and simmer until beans are tender, about 2 hours.
Whiz about ⅔ of the soup in a blender to make it smooth, then stir it back in, add the ham, and heat through.
Notes
Use 1 cup chopped ham or bacon (or about ⅓ lb)Optional: garnish the bowls with a dab of yoghurt or sour cream, and a sprinkling of grated cheddar and chopped green onion and chopped fresh coriander.