This soup can be made vegan – use water instead of chicken stock and leave out the cream. Or non-dairy – use the chicken stock but leave out the cream. I think the cream gives it a lovely richness, but if you cook the veggies long enough and have a powerful blender, you'll get almost the same creaminess without it.
Big glug of olive oil
1 large yellow onion, thinly sliced
2 or 3 garlic cloves, minced
3 or 4 large carrots (or the equivalent baby carrots), peeled and thinly sliced
1 bay leaf
2 28-ounce cans canned whole tomatoes with juice
Enough chicken stock or water to cover everything by about 2 inches
Kosher salt and freshly ground pepper
1/4 to 1 cup heavy cream (optional)
1. Heat olive oil in a large heavy stockpot. Add onions until getting soft, 7 or 8 minutes, then add garlic, carrots, and bay leaf and sauté for about 5 minutes more.
2. Add tomatoes and chicken stock, bring to a boil, then reduce to a simmer, partially cover, and cook until everything is soft, about 30 minutes.
3. Purée mixture in a blender or food processor. Return to the pot and season to taste with salt and pepper. Add cream if desired and warm. Serve with a swirl of cream on top