Pour the olive oil into a large baking dish or a pan that will hold the tomatoes snugly. Scatter the onion evenly over the bottom.
Arrange the tomatoes cut side up over the onion and sprinkle with the salt and sugar.
Roast 20 minutes. Add the garlic to the tomatoes and roast for about 10 more minutes – the tomatoes and onion should be soft and golden and the juices bubbling. Season the tomatoes with the black pepper to taste and cool 10 or 15 minutes.
Transfer the tomatoes to a blender or food processor. Tear the bread slices into small chunks and add to the tomatoes (one half at a time if blending in 2 batches). Add enough broth or water to barely cover the tomatoes – it will depend on how juicy the tomatoes are after roasting.
Puree until completely smooth, in batches if necessary, adding more bread and/or liquid to achieve a consistency you like. I prefer the soup with a little body rather than very brothy. Taste the soup and add more salt if you think it needs it.
Toast some bread slices and spread with goat cheese or ricotta, if you like, or drizzle with olive oil. Sprinkle with herbs place the toast in each bowl of soup.