Heat the olive oil and butter in a large heavy pot over medium heat until the butter melts and stops foaming.
Add the onion and carrot with a pinch of the salt. Cook, stirring now and then, for 8 to 10 minutes, until the onion is soft and translucent but not browned.
Add the garlic and cook for 1 minute, until fragrant. Stir in the tomato paste and cook for 2 minutes, stirring, until it darkens slightly and starts to stick to the bottom of the pot.
Pour in the canned tomatoes with their juice and crush them against the side of the pot with the spoon. Add the vegetable broth, sugar (if using), the rest of the salt and the pepper, scraping up anything stuck to the bottom.
Bring to a boil, then lower the heat and simmer, partly covered, for 20 minutes, stirring occasionally, until the carrot is completely tender when pressed with the spoon.
Take the pot off the heat and add the basil. Blend with an immersion blender until completely smooth. If using a countertop blender, let the soup cool for 5 minutes, fill the jar no more than half full, remove the center cap of the lid and cover the hole with a folded towel, then blend in batches and return to the pot.
Set the pot over low heat and stir in the cream. Warm gently for 2 minutes without letting it boil. Taste and adjust with more salt or a pinch more sugar if it tastes sharp.
Ladle into bowls and top with a little extra cream and torn basil.