Melt the butter in a large saucepan and fry the leek for a few minutes until softened. Stir in the flour and cook for a minute or two, then remove from the heat and very slowly add the warm milk, stirring all the time. Return to the heat and stir until thickened and smooth (a good few minutes). Add the cheese, parsley, dill (if using), lemon rind, mustard and salt and pepper to taste.
Add the raw fish to the sauce and stir, then remove from the heat and pour into a medium baking dish (about 10 by 7 inches or similar).
Put the spinach in a colander and pour a kettle of boiling water over it to wilt it. Squeeze out as much of the water as possible by squeezing with the back of a spoon. Scatter over the fish and sauce filling.
Now while the filling cools a little, preheat the oven to 180C / 350F, and make the topping.
Boil the potatoes for 15 minutes, then drain and return to the pan. Crush lightly with a fork and stir in half the olive oil and the parmesan cheese.
Spread the topping evenly over the cooled filling, then drizzle over the rest of the olive oil, the cheese and paprika (if using). Grind over a little salt and pepper.
Bake for 30 to 40 minutes or until the filling is bubbling and the potatoes browned and crisp. Serve with a salad or vegetables of your choice.