1. In a 6- to 8-quart pan over medium heat, combine oil, onions, green pepper, celery, garlic, thyme, and bay leaf. Cover and stir occasionally until vegetables are limp, about 10 minutes.
2. Sort through the beans and discard debris. Rinse and drain beans.
3. Add beans, broth, 3 cups water, and ham hock to pan. Bring to a boil over high heat.
4. Turn heat to low. Cover and simmer, stirring often, until ham hock is very tender when pierced, about 1 1/2 hours.
5. With a slotted spoon, lift out hock. Let stand until cool enough to touch. If beans are soft when pressed, remove from heat. If not, cover and continue to simmer until they are. Pull meat off the hock, discarding bones and skin. Chop meat and return to soup.
6. Add madeira to soup and stir over medium heat until steaming. Discard bay leaf. Add pepper and salt to taste.
7. For a thicker soup, purée up to half of it in a blender or food processor, then return to pan and stir. Serve hot.
Nutritional analysis per 1/2 cup.