Heat the olive oil in a large Dutch oven over medium-high heat. Add the garlic, salt, pepper and onion and cook until softened, 1 to 2 minutes. Add the broth, diced tomatoes with their liquid, tomato sauce, Parmesan rind and 1/4 cup of the basil and cook, stirring occasionally, for about 30 minutes. Remove the Parmesan rind and puree the soup with an immersion blender until smooth.
In a small saucepan, melt 3 tablespoons of the butter. Whisk in the flour and continue to cook, whisking, until the mixture is lightly browned, 1 to 2 minutes. Add the cream and cook, stirring, until thickened. Add the cream mixture to the soup and cook over medium-low heat, stirring occasionally, until the soup has thickened, about 15 minutes.
Meanwhile, melt the remaining 2 tablespoons butter in a medium skillet over medium heat until foamy. Place 2 of the bread slices in the skillet; top each bread slice with 2 cheese slices, 2 tablespoons of the chopped basil and another bread slice. Cook until the bread is golden brown and the cheese is melted, about 3 minutes per side. Cut each sandwich into 9 pieces.
Serve the soup with the grilled cheese croutons and sprinkle with the remaining 1/4 cup basil.
Make ahead: You can freeze this soup for up to 3 months, so make a few batches of it.
Variations: Give the croutons an upgrade by using sharp Cheddar or manchego cheese.