In a Dutch oven or large heavy saucepan, heat the olive oil over medium heat. Add the onions and carrots and cook for 10 minutes, stirring, then add the garlic and basil. Cook for an additional 5 minutes.
Add the tomatoes and stock, bring to a boil, then reduce to a simmer. Cook, uncovered, for 45 minutes, stirring occasionally.
After allowing soup to cool for a few minutes, purée in a blender or food processor until smooth (in batches if necessary).
Slowly stir in the cream over low heat, until the soup is just heated through. Season with salt and pepper, and serve warm.