Using a colander rinse the beans and throw out any small stones or broken beans. Fill a large bowl and soak the beans in cold water overnight. The next morning drain the beans, place the drained beans in a crockpot. Add fresh cold water to the beans in the crockpot so they are covered by 1 inch of water.
In a food processor or chopper mince up the pepper, onion, and garlic, you may do this by hand as well but you would have to mince it very finely. Add this mixture, olive oil, bay leaves, and cumin to the beans. Stir to combine.
Place the ham bone or hock in the bean mixture, cover and cook on high for 4 hours. Turn to low, stir, cook for 2 more hours.
Remove the ham bone and let it cool a bit. Use an immersion blender to puree some of the soup. You could also take a cup or two and put it in your blender. This step is optional but I like the creamy texture from having some of the beans pureed.
Trim off any meat from the bone and return it to the pot. Stir in the vinegar, taste if it needs any salt and add accordingly. It really depends on how salty your ham was. You can eat this soup as is but I like to serve it with about a 1/4 cup of cooked rice, sour cream, and chopped raw onion.
Notes
* You should always save your leftover ham bone whenever you make or buy a bone in ham. Wrap it in plastic wrap and foil and freeze until you are ready to use it. Pull it out and place in the fridge the night before when you soak the beans.Nutrition information is an estimate and will vary depending on the brands and ingredients you choose.