Preheat oven to 350˚F (180˚C).
Place the bread slices on large baking sheet and bake just long enough to dry the bread, but not chang the color. Break the slices into small pieces.
Bring a large pot of water to a boil. Place a large bowl of ice water nearby.
Cut a small "X" on the bottom of each tomato.
Carefully place the tomatoes in the boiling water and cook just until the skin starts to separate, 30 seconds to one minute.
Immediately transfer to the ice water and set aside until cool enough to handle.
Once cool, peel off the skins and dice the tomatoes.
In a large pot, drizzle the olive oil over medium heat.
Add the onion and cook just until softened, stirring occasionally.
Stir in the garlic and cook until fragrant, 30 seconds to 1 minute.
Add the diced tomatoes and any juice.
Once they start to break down, pour in the chicken stock. Season to taste with salt and pepper.
Bring the mixture to a boil, then reduce heat to a simmer and cook for 30 minutes, stirring occasionally, until the liquid starts to reduce.
Remove the pot from heat.
Stir in the torn pieces of dry bread and basil, then set aside for 20 minutes.
Stir to break up the soaked pieces of bread and blend slightly into the soup. Adjust seasoning to taste.
Serve warm, drizzling the top of each bowl with a little more olive oil if desired.