Heat the oil and butter in a large saucepan over a medium-low heat. Add the onion and carrot and cook for 10–12 minutes, stirring occasionally, until soft and just beginning to colour at the edges. Don’t rush this.
Add the garlic and cook for another 2 minutes, then stir in the tomato paste and fry it for a minute until it darkens slightly.
Add the tinned tomatoes, crushing each one with your hand or the back of a spoon as it goes in. Add the stock and the thyme.
Bring to a simmer and cook, partly covered, for 25 minutes.
Fish out the thyme stalks. Blend until smooth — in a jug blender, no more than half full at a time, with the lid held down under a tea towel. For a silky soup, pass it through a sieve afterwards.
Return to the pan, taste, and season generously. If it tastes sharp, add the sugar, or a pinch of baking soda (it will foam briefly). Taste again before adding more.
Stir in the cream if using and warm through without boiling.
Serve with basil torn over, and something cheesy on toast alongside.