In a large cast iron frying pan, heat oil over medium heat. Add onion and cook, stirring, for about 3 minutes just until golden. Add garlic and stir for about a minute, until fragrant.
Stir in tomatoes, breaking them up with the back of a wooden spoon.
Add balsamic vinegar and sugar, stirring to combine.
Bring to a boil and then reduce heat so simmer, stirring occasionally to break up any large pieces, cook for 30 minutes.
Add chopped basal, if using, and heat through.
Serve thick and chunky, or use immersion blender to serve a smoother sauce, over prepared pasta.