Heat the butter in a large pot over medium heat, until melted. Add the onion and celery. Cook, stirring occasionally, until the onion and celery are soft, about 10 minutes.
Add the flour and cook, stirring constantly for about 2 minutes.
Add the chicken broth and tomato puree and mix together well. Bring the mixture to a slow simmer and cook for 30 minutes, stirring occasionally.
Add the 3 tablespoons balsamic vinegar and cream. Season with the lemon juice, and salt and pepper to your liking.
Before serving, toss a few basil leaves on top. Serve with a grilled cheese sandwich, skewered over the bowl as well if desired.