Grease an ovenproof gratin dish with half the butter. It should be a size that will take the potatoes and onions, and 5-8 cm deep.
Put a large saucepan on a moderate heat and add the rest of the butter. Add the onions and cook for about 10 minutes until soft, translucent and just beginning to turn golden.
Add the cream, bay leaves, mustard, milk and potatoes. Season with a little salt and some pepper. Cook gently for about 15 minutes until the potatoes are half cooked. Check the seasoning and remove the bay leaves.
Pour half the mix into the gratin dish, lay the fish on top then pour on the remaining potato and onion mix. Press down with a wooden spoon so that the liquid just covers the potatoes. If it looks a bit dry drizzle over more cream or milk.
Cover with foil and bake for 20 minutes, then remove the foil and turn down the oven to 180 c, 160 Fan, Gas 4. Sprinkle lightly with the breadcrumbs if using and cook for another 10 minutes until the top is golden and crisp.