Heat olive oil in a large pot or Dutch oven over medium heat. Add the chopped onion and cook until softened, about 5-7 minutes.
Add the minced garlic, chili powder, cumin, and smoked paprika. Cook for 1 minute more, stirring constantly, until fragrant.
Stir in the rinsed black beans, vegetable broth, and diced tomatoes (undrained). Bring to a boil.
Reduce heat and simmer, covered, for at least 30 minutes, stirring occasionally, to allow flavors to meld.
For a thicker soup, you can mash some of the beans against the side of the pot with a spoon or use an immersion blender for a creamier texture.
Stir in the chopped cilantro and lime juice. Season with salt and black pepper to taste.
Serve hot, garnished with extra cilantro, a dollop of sour cream or Greek yogurt, or shredded cheese, if desired.
Notes
This black bean soup is even better the next day as the flavors continue to develop. It's also a great base for adding other vegetables like corn or bell peppers.