In a saucepan over medium heat, melt the butter.
Add the flour and cook for about 1 minute, stirring constantly to make a roux.
Gradually whisk in the milk until smooth.
Season with salt and black pepper.
Cook the sauce until thickened, about 5-7 minutes. Set aside.
Croque Madame:
Preheat the oven to 400°F (200°C).
Toast the bread on both sides in a pan for five minutes.
Lay out 2 slices of Sourdough bread and spoon a portion of the béchamel sauce over them.
Top each with ham slices.
Over the ham sprinkle half of the Gruyère cheese on top of the ham.
Top each with another slice of bread.
Spread a thin layer of béchamel on top of each sandwich.
Sprinkle the remaining Gruyère cheese on top.
Bake in the preheated oven for about 10-12 minutes until the cheese is melted and bubbly.
Cooking the Eggs:
In a skillet, melt some butter over medium heat.
Fry the eggs to your desired doneness (usually sunny side up for a Croque Madame).
Assembly:
Place a fried egg on top of each baked Croque Madame.
Serve hot