Butter a 2 litre (3 ¼ pint) shallow pie dish, about 6cm (2 ½”) deep.
Cut the fish into 1cm (½”) pieces, discard any skin and bones. Boil the leeks in salted water for about 5 minutes and drain well.
Next make the sauce. Melt the butter in a good sized pan, add flour and cook for a few moments not allowing it to colour. Whisk in half the hot milk and allow to thicken. Whisk in the remaining hot milk and whisk until smooth. Add the fish and a little salt and pepper. Cook over a low heat for 2 minutes, stirring, add lemon juice, dill and chopped egg and turn into buttered dish. Spoon over the leeks and set aside to become completely cold and firm.
Meanwhile boil the potatoes in salted water till tender, drain and push the potatoes to one side in the pan. Add the milk and let it become hot, mash the potatoes with the milk using a potato masher then whisk in the mustard – you may need a little more milk. Check seasoning.
Spread the mash over the cooled fish, scatter with the cheese. Stand the dish in a large roasting tin (just in case it boils over).
Can be made up to 48 hours ahead. Freezes well without the eggs.
Bake in preheated oven 200C/180 Fan/Gas 6 for about 30 minutes until the top is golden and the sauce is bubbling at the edges.