Heat the olive oil and butter in a large pot or Dutch oven set over medium-low heat. Add the onions and garlic and cook, stirring occasionally, for 6-8 minutes, until the onions are translucent and just starting to lightly brown. If brown bits form on the bottom of the pan, use a spatula to scrape them up and stir them into the vegetables.
Stir in the tomato paste followed by the tomato puree, vegetable stock, sugar, salt, pepper, basil, oregano, and crushed red pepper. Bring to a simmer over high heat, then turn the heat to low and cover. Simmer for 45 minutes.
Remove the cover and allow the liquid to cool for several minutes, then carefully ladle it into a blender and puree, in batches if necessary. Return to the pot and stir in the cream. Taste; add more salt and pepper if desired.