Chop up the cauliflower into bite-sized pieces, removing the stem and leaves as you do. Finely chop the onion and mince the garlic. Toast the bread and then finely chop or pulse in a food processor until you have bread crumbs, set aside.
Boil 5-6 cups of water in a large pot. Blanch the chopped cauliflower for 2 minutes, then drain from the hot water. If you like your cauliflower on the softer side, you can blanch for a minute or two longer. But please note, we will also be baking it in the cheese sauce for about 20 minutes. So don’t blanch for too long or you may end up with mush.
In a medium pot, melt the butter with the onion and garlic over medium heat. Whisk in the flour and salt and pepper. This will create a paste (often called roux). Slowly add the vegetable stock while continuing to whisk to create a thinner paste. Then pour in all the milk in a slow steady stream as you whisk so the paste combines well with the milk. Now add in 10 oz. of the shredded cheese and stir until melted.
Add the cauliflower to a rectangle casserole dish (9×13 inches or close to around that size). Pour the cheese mixture over the cauliflower and top with the remaining 4 oz. of cheese. Sprinkle the bread crumbs over the top.
Bake at 350°F for 18-20 minutes until the edges begin to bubble. Allow to cool for a few minutes before serving. If you want to dress this up a little, add a sprinkle of fresh herbs or chives to the top.