In a large pot, melt butter. Add garlic and cook 1 minute. Add flour and whisk to combine.
Add basil, sugar, salt and pesto. Cook and stir 1 minute.
Add milk and whisk until combined. Cook and whisk on medium heat until thickened, stirring often.
Add tomatoes, tomato paste, and Parmesan if using, and stir until combined.
Puree with an immersion blender if desired and serve.
