Cook onions and garlic: In a deep pot, heat oil over medium heat. Add the onion and saute until translucent, about 5 minutes. Add the garlic and saute for another minute or two until it becomes fragrant.
Add bell pepper and spices: Add the bell pepper and stir in the oregano, cumin, pepper flakes, salt, pepper, and bay leaf. Saute for 1 minute or until the spices become fragrant.
Add remaining ingredients: Add the tomatoes, black beans, vegetable broth, and cilantro. Cover the pot and cook for 15 minutes, stirring occasionally.
Puree a portion of the soup: Use an immersion blender to puree a portion of the soup until the desired consistency is reached. Alternatively, carefully transfer to a blender to puree. Stir back into the pot and add cilantro and lime juice. Heat the soup uncovered for another 5 minutes.
Garnish and serve: Ladle soup into bowls. Top with additional toppings and serve.