Heat 4 tablespoons olive oil in a large pot over medium-high heat. Add the onion, carrots, celery, sweet potatoes, salt, and pepper. Cook, stirring often, until the onion softens and turns golden, 7-9 minutes.
Stir in garlic, Italian seasoning, thyme, cumin, and red pepper flakes (if using). Cook, stirring constantly, until fragrant, about 30 seconds.
Pour in undrained diced tomatoes and cook for 2 minutes, stirring often. Add the broth and bay leaves. Increase heat to high and bring to a boil. Partially cover the pot, then reduce heat to maintain a gentle simmer. Cook for 20-25 minutes.
Remove the lid and stir in parsley, ½ teaspoon lemon zest, and 1-2 tablespoons lemon juice. Remove the bay leaves. Taste and adjust seasoning with more salt, pepper, or red pepper flakes, if needed. Drizzle the remaining 1 tablespoon olive oil on top.
Ladle into bowls and top each serving with a spoonful of pesto. Serve with crusty buttered bread on the side
Notes
Note1: Pesto adds big flavor! Stir in as much or as little as you like until it’s just right. Use homemade or fresh-refrigerated pesto (not shelf-stable). Rana's is my favorite.Note 2: This recipe has been updated for even better results. If you’re looking for the original version, you can still find it here.Storage: Let soup cool, then store in an airtight container in the fridge for up to 5 days. Freeze for up to 3 months. Reheat on the stove or in the microwave, adding broth if needed.