Set a large pot over medium heat. When hot, add the olive oil. Add the onion and oregano and saute, stirring occasionally, until the onion is translucent, about 5 minutes.
Add the garlic and saute, stirring occasionally, for another minute. Add the cumin, pepper, beans, tomatoes, vegetable broth, ½ teaspoon salt, and ⅛ teaspoon pepper. If using whole tomatoes, break them up with a spoon.
Increase heat to high to bring to a boil, then lower heat to a simmer. Cook uncovered until thickened, about 25 minutes.
Remove from heat and let cool until safe to handle. Transfer 6 cups to a blender and puree. Return to soup and stir to combine. (You can also remove 6 cups from the soup and use an immersion blender to puree that half of the soup, if you prefer).
Return to medium heat until reheated throughout. Add lime juice. Taste and add additional salt and pepper if desired.
Serve with optional toppings.