Preheat the oven to 200°C (180°C fan) / 400°F (350°F fan).
Add the cubed potatoes to a saucepan, cover with water, and bring to the boil. Cook until they soften, then drain and set aside.
Pour the milk, cream, and bay leaf into a pan and gently heat over low heat.
Remove the skin and add the smoked haddock to the milk mixture. Poach until the fish is just cooked through and flakes easily.
While the fish is poaching, heat 30g of the butter in a frying pan and cook the chopped leek and onion until soft.
Remove the haddock from the milk, discard the bay leaf, and set the fish aside.
In a separate saucepan, melt the remaining butter and stir in the flour to form a smooth paste.
Add a little of the reserved milk mixture and whisk to combine. Gradually whisk in the rest until the sauce is thick and lump-free.
Stir in the white wine and 100g of the grated cheddar, mixing until the cheese has fully melted.
Season the sauce with salt and pepper to taste.
Flake the haddock into chunks, check for bones (and remove if you find any) and add the fish to the sauce along with the cooked potatoes, leek, and onion. Mix gently to combine.
Pour the mixture evenly into an ovenproof baking dish.
Mix the breadcrumbs with the remaining 50g of cheddar and sprinkle over the top.
Bake for 30–40 minutes until golden and crisp on top.
Recipe Notes
Use Undyed Haddock: For the best flavour and colour, look for naturally smoked, undyed haddock.
Prep Ahead: You can prepare the filling a day in advance and store it in the fridge, then top with breadcrumbs and bake when needed. You can also freeze the entire bake before cooking.
Cheese Options: Mature Cheddar adds a punchy flavour, but you can also try a mix of Cheddar and Parmesan for extra richness.
Crumb Tip: For crispier crumbs, drizzle a little melted butter over the topping before baking.
Serving Suggestion: Pair with simple sides like buttery green peas or soft oatmeal dinner rolls.