Cook the aromatics: Heat the olive oil and butter in a large pot or Dutch oven over medium heat. Once the butter melts, add the onion and carrot. Cook for 6 to 8 minutes, stirring occasionally, until soft and lightly golden. Stir in the garlic and cook for about 1 minute, until fragrant.
Toast the tomato paste: Add the tomato paste and red pepper flakes. Cook, stirring, for 1 to 2 minutes, until the paste darkens to a deep brick-red color.
Add the tomatoes: Add the chopped tomatoes and any juices. Stir and cook for about 5 minutes, until they begin to soften and release their juices. Add the broth, sugar, bay leaf, salt, and black pepper. Stir to combine.
Simmer the soup: Bring to a boil, then reduce the heat to low. Partially cover and simmer for 20 to 25 minutes, stirring occasionally, until the tomatoes have completely broken down and the carrot is very tender.
Add the basil and blend: Remove and discard the bay leaf. Stir in the basil leaves. Blend the soup with an immersion blender until completely smooth, about 1 to 2 minutes. If using a countertop blender, blend in batches, fill it only halfway, and vent the lid with a towel over the opening. For an extra-silky soup, strain it through a fine-mesh sieve.
Finish with cream: Return the pot to low heat. Stir in the heavy cream and Parmesan until the cheese melts and the soup is heated through. Do not let it boil. Taste and adjust the salt, pepper, and sugar if needed.
Serve: Ladle into bowls and garnish with fresh basil, a swirl of cream, and extra Parmesan. Serve warm with grilled cheese, garlic bread, or crusty rolls.