Heat the oil in a pot. Add the onions and sauté for 5-7 minutes until softened and translucent.
Add balsamic vinegar, sugar, and garlic. Cook for another 2-3 minutes.
Add the tomatoes and bring to a simmer. Cook for 10 minutes until tomatoes are soft and breaking apart.
Stir in the chicken broth and return to a simmer. Cook for 5 minutes more. Taste and season with salt and pepper as needed.
Puree the soup using an immersion blender or regular blender with a folded towel over the lid and the cap in the lid removed.
Garnish with basil and serve with grilled cheese.