In a large heavy pot, heat the oil over medium heat. Add the onions and saute for 5-7 minutes, or until they've started to soften. Add the balsamic, sugar, and garlic and saute for an additional 2-3 minutes, or until garlic is fragrant.
Stir in the chopped tomatoes and bring the mixture to a simmer. Simmer for 10 minutes, uncovered, stirring occasionally.
Stir in the chicken broth and bring the mixture back to a simmer. Simmer another five minutes then taste. Season with salt and pepper as desired. Stir in basil.
Use an immersion blender to blend the soup into the consistency of your choosing. You can make it totally smooth or leave some chunks. I personally like a few chunks. You can also blend this in your blender, but be sure to remove the inner cap, cover with a towel, and only fill the blender 1/2 full.
To serve, spoon the soup into bowls and top with sliced fresh basil. Swirl with half and half or heavy cream, if desired. Top with Parmesan cheese and croutons, or serve with a side of grilled cheese.