Heat the olive oil in a large pot over medium heat. Add the sliced onions and cook, stirring occasionally, for about 15 minutes, until they are soft and begin to caramelize.
Add the minced garlic and cook for another 2 minutes, making sure it doesn’t burn.
Stir in the chopped tomatoes, sugar, salt, and black pepper. Cook for about 5 minutes, allowing the flavors to meld and the tomatoes to soften.
Pour in the vegetable or chicken broth and bring the mixture to a boil. Reduce the heat and let it simmer for an additional 10 minutes.
If a smoother texture is desired, use an immersion blender to puree the soup to your liking. Alternatively, you can transfer it to a blender in batches.
Stir in the balsamic vinegar and adjust the seasoning if necessary.
Serve hot, garnished with fresh basil leaves if desired.
For added richness, consider drizzling a bit of cream or olive oil on top before serving.