Preheat the oven to 450°F.
Place the tomatoes and onions on a large rimmed baking sheet and drizzle with olive oil. Sprinkle with salt and pepper.
Roast 25-30 minutes, then remove and let cool for 10-15 minutes.
Scoop the tomatoes and onions into a blender, and pour all of the juices from the pan into the blender. Blend until smooth. Pour the tomato mixture through a fine mesh strainer to remove the seeds and skin.
In a heavy pot or dutch oven, melt the butter over medium heat.
Add the flour and stir to make a roux. Cook 2-3 minutes, until bubbling and golden.
Slowly pour in the half and half, whisking constantly to prevent lumps. Whisk in the chicken broth gradually.
Add the salt, sugar, dried basil, and garlic powder and whisk to combine. Add the tomato puree and whisk to combine. Cook 10-15 minutes, until thickened.