I find it helpful to prepare all ingredients in a mise en place style for this recipe. So, dice tomatoes (if using fresh), peppers and onions. Crush and mince garlic cloves. measure out and combine spices. Dice ham.
To a soup pot, add a generous drizzle of olive oil. Add onion, garlic and peppers. Cook on low heat for about 10 minutes, stirring often, until the veggies start to soften.
To the pot, add the can of black beans (including liquid - do not drain), tomatoes, and spices. Mix to combine, and then add broth until all ingredients are just submerged. Increase heat and bring to a simmer (5-10 minutes).
Remove the pot from heat. Either use an immersion blender to blend a portion of the soup, or spoon 2-3 cups of soup into a stand blender, combine, then return to pot. The goal here is not to create a completely homogeneous liquid, but to break down a portion of the beans and veggies to help thicken the broth.
Return the pot to heat and add the diced ham. Allow to simmer, uncovered for about 20 minutes. Add broth if needed.
While soup is simmering, cook your rice according to directions.
If your soup is thinner/more watery than you'd prefer, you can mix a tbsp of flour into a slurry with broth, and stir into the pot.
Serve your soup over rice, or with chips/tortilla for dipping. Enjoy!