Preheat the oven to Gas Mark 6, 200°C (400°F).
Place the milk, onion, bay leaf and pepper corns in a large saucepan and bring to a boil. Reduce to simmer, add the fish and cook gently for 4-5 minutes. Remove the fish from the pan, allow to cool a little, then flake into bite-sized pieces and place in a bowl.
Melt the butter in a saucepan, then stir in the flour. Cook for 2-3 minutes, stirring all the time until golden brown. Gradually stir in the fish cooking liquid until the mixture boils, season with salt and pepper. Reduce the heat and allow to simmer gently for 3-4 minutes until thickened.
Now add the sauce to the fish along with the parsley and lemon juice and taste for seasoning.
Spoon half the fish mixture into a 1½ litre baking dish, arrange the sliced tomatoes on top and then spoon in the rest of the fish. Spread the mashed potatoes on top, finely sprinkle the cheese all over and bake in the oven for 15-20 minutes until heated through and browned.