Heat the oil in a large saucepan over medium-high heat. Add the onion and carrot and cook 2 to 3 minutes, or until onion is tender. Add the garlic and cook 1 minute more, or until fragrant.
Add the water, tomato sauce, and tomato paste to the saucepan; stir to combine. Reduce the heat and simmer for 15 minutes, or until thickened slightly, stirring occasionally.
Remove the soup from the heat. Carefully blend the mixture in the saucepan with a handheld immersion blender, until smooth. Stir in the milk and keep warm.
Buttering one side of each piece of bread. Lay a piece of cheese on 4 of the pieces of bread and top each with a remaining slice of buttered bread to make a sandwich (buttered side out). Cook the sandwiches in a skillet over medium heat until both sides are very crisp and the cheese is melted. Remove the sandwiches from the heat and let them rest for 2 minutes. Trim the top crust and cut the sandwiches into cubes. Place one cubed sandwich into each bowl of soup. Sprinkle with grated Parmesan cheese and serve.