Heat the oil in a large saucepan and when hot add the onion and carrots. Cook for 5 - 7 minutes, stirring to prevent it from sticking to the bottom of the pot.
Once the onions have become tender and translucent, add a tablespoon of water to the pot and use a wooden spoon to scrape any of the browned onion into the mixture. This will do two things, it will prevent any bits of onion from burning to the bottom of the pan and will also add to the flavour of the soup. Add the garlic and saute for one minute
Add the chopped tomatoes, stock, basil leaves, tomato puree, salt, sugar and pepper and stir. Bring to the boil and then reduce the heat till the mixture is gently simmering.
Cover the pot and leave to simmer for 30 minutes, stirring occasionally.
Remove from the heat and use an immersion blender to blend until smooth. You could also use a processor/ blender by adding the mix in batches & blitzing till smooth.
Taste & season further if required.
Serve immediately with an optional drizzle of balsamic vinegar.