Heat oil in a large saucepan over moderate heat; add onions, celery, garlic basil and thyme. When onions are tender;
add tomatoes, tomato paste, sugar, salt and pepper to taste; cover and simmer about 18 minutes.
Add chicken broth, bring to boil; reduce heat and simmer for 30 minutes; stir occasionally.
Transfer mixture in batches to blender or food processor and puree. Strain through a sieve to remove any tomato seeds.
In saucepan, melt butter, add flour and cook gently for 2 minutes. Add milk and cook, stirring until thick and smooth; and whisk into tomato puree. Taste and adjust seasoning.
Simmer an additional 5 minutes.