Heat the olive oil in a large saucepan or Dutch oven over medium-high heat until shimmering. Add the onion, season with salt and pepper, and cook, stirring occasionally, until translucent, about 5 minutes.
Add the carrots and garlic, season with salt and pepper, and cook, stirring occasionally, until the garlic is fragrant, about 2 minutes.
Add the celery and, if using, any hearty vegetables (such as cabbage and fennel) and the bay leaf and thyme. Season again with salt and pepper and cook an additional 5 minutes. If using, add the wine or vermouth (for some acidity) and cook, stirring occasionally, until the alcohol has reduced by about half, about 2 minutes.
Add the broth, potatoes, and any quicker-cooking vegetables (such as asparagus and peas). Let the soup come to a boil, then reduce the heat to low and gently simmer, uncovered, until the potatoes can be easily pierced with a fork, about 15 to 25 minutes. Taste and season with additional salt and pepper as needed. If you choose, serve with a dollop of pesto.