Preheat the oven to 190C/170C Fan/Gas 5. Boil the potatoes until tender. Drain.
Put all the fish in a large pan with the milk. Cover, heat until just simmering, then poach for 5 minutes. Drain, reserving the milk. Skin and flake the fish, and remove any bones.
Mash the potatoes with 2 tbsp of the reserved milk. Mix with the fish and half the lemon zest, parsley, spring onions and capers. Season with pepper and leave to cool.
Shape into 8 cakes about 2 cm thick. Put on a plate lined with clingfilm and chill for 20-25 minutes.
Beat the egg with the melted butter and put in a shallow dish. Put the breadcrumbs and the flour into two separate shallow dishes. Dip the fish cakes on all sides in flour, then egg, then breadcrumbs. Put on a baking tray and spritz lightly with spray oil. Bake for 15-20 minutes.
Mix the mayonnaise and yoghurt with the tomatoes and remaining zest, spring onions, parsley and capers.
Put the spinach in a large frying pan with 1tbsp water and cook, stirring, until it wilts. Drain, then serve with the fish cakes and sauce.