Preheat oven to 350°F. Grease an 8-inch (2 L) baking dish.
Cook cauliflower for 5 min in a large bot of boiling water. Drain and set aside in bowl.
Meanwhile, cook bacon in a large skillet set over medium heat until crispy. Set aside on paper towels to take off excess fat and break into bite size pieces when done.
Discard all but 2 tsp of bacon fat fat. Add leeks and onion to skillet; cook, stirring occasionally, for 5 to 7 min or until very soft and just starting to turn golden. Transfer to bowl with cauliflower and add bacon.
Wipe the skillet clean. Melt butter in a skillet set over medium heat. Sprinkle with flour; cook, whisking, for 1 min.
Gradually whisk in milk and bring to a boil. Reduce heat and whisk for 3 to 5 min or until smooth and thickened. Add in Monterey Jack and Parmesan cheese stir until melted.
Pour the mixture over cauliflower and leeks, mix until coated. Pour into greased dish.
For the Topping: In a bowl, stir together breadcrumbs, cheese and melted butter. Sprinkle over cauliflower mixture in the dish. Bake for about 30 min or until golden on top.