Preheat oven to 375 and line a rimmed baking sheet with parchment or foil. Break sausage into bite sized pieces and arrange on baking sheet.
Cut bread into cubes, toss with 2 Tbsp of olive oil and season with salt and pepper. Spread them out on baking sheet around sausage. Bake together 10 minutes, turn bread cubes, and bake another 5-10 minutes until sausage is cooked through and bread cubes are crisp. If using purchased croutons just bake the sausage 15-20 minutes, no need to turn anything half way through.
Cut broccoli into sections with several florets each and steam for about 5 minutes or until tip of paring knife slides in and out of stem easily. See notes to avoid overcooking. Arrange cooked broccoli in casserole dish.
Arrange sliced tomatoes over broccoli, followed by cooked sausage and croutons (store bought or homemade).
Make cheese sauce. Melt butter in medium saucepan. Add flour once butter is melted, stir constantly until flour is completely absorbed and 1 minute longer (keep heat low so that it doesn't brown). Slowly add milk, whisking constantly and making sure to get into the edges of the saucepan. Continue whisking over med-low heat until mixture thickens and bubbles gently. This will take several minutes.
Once sauce is thick, turn off heat and add cheese (reserve a little to sprinkle over casserole before baking), a handful at a a time. Whisking to melt between each addition until all cheese has been added. Add salt and pepper to taste. The amount of salt will depend on the type of cheese you use.
Pour sauce over broccoli mixture, sprinkle reserved cheese over top and bake at 350 for 35-40 minutes, until bubbly and golden.
Enjoy!