Sweat the aromatics: Warm olive oil in a large pot over medium heat.
Add onion, carrots, and celery. Cook 6–8 minutes until softened and lightly golden. Stir in garlic for 30 seconds.
Build the smoky base: Add roasted red peppers, roasted poblano, and chipotle with adobo sauce.
Stir 1–2 minutes to warm and release their aroma.
Add tomatoes and spices: Stir in crushed tomatoes, tomato paste, smoked paprika, cumin, bay leaf, and 3 cups broth. Bring to a gentle simmer.
Simmer and balance: Reduce heat to low and simmer uncovered 20–25 minutes, stirring occasionally. If the tomatoes taste sharp, add sugar or honey.
Adjust thickness with more broth as needed.
Blend to your preferred texture: Remove the bay leaf. For smooth soup, use an immersion blender directly in the pot until velvety. For a rustic style, blend only half and return it to the pot.
Finish and season: Stir in cream or coconut milk if using, then add lime juice.
Taste and season with salt and black pepper. If you want more heat, add a little more chipotle or adobo.
Serve with toppings: Ladle into bowls and top with cilantro or parsley. Add croutons, a swirl of sour cream, or toasted seeds for crunch.