Heat the olive oil in a large pot or Dutch oven over medium heat. Add the onions and saute for 5 minutes, until golden and tender. Add the garlic, cumin, and oregano and stir for 1 minute until you can smell the garlic. Stir in the black beans, orange juice, orange zest, and chicken broth. Season with salt and pepper. Bring to a simmer and cook, stirring occasionally, for about 15 minutes until the flavor melds a bit.
Remove half of the bean mixture and puree in a food processor or blender. Return the pureed beans to the pot. Taste and adjust seasonings as needed. If the soup seems too thick, you can add a bit more broth.
Serve hot in bowl with the desired toppings.
Notes
The recipe calls for canned beans, but if you prefer to cook your own dried beans, that's another — even cheaper! — option. Think of ½ cup of dried black beans equaling 1 can of drained beans. So, 2 cups of dried black beans, cooked, would equal 4 (15-ounce) cans of beans.
If you don’t want a vegetarian soup, you could add some diced ham or bacon with the onions when you are sautéing them. You could also bolster the soup with shredded cooked chicken (all hail the rotisserie chicken!) or perhaps cooked crumbled or sliced sausage, again if a vegetarian or vegan black bean soup isn’t what you’re after.
I have also made this soup with the addition of tomatoes, with a 28-ounce can of crushed or diced tomatoes, and once with about two cups of roasted cherry tomatoes (leftover from a burrata and roasted tomatoes festival). The tomatoes aren't necessary, but they add another layer of flavor and some nice acidity.
Omit the sour cream as a topping (or use vegan soup cream) to make this soup entirely vegan.