Preheat oven to 200C/400F/Gas 6.
In a saucepan, gently fry the onion, garlic, lemongrass, and chilli for 3-4 minutes.
Add the coconut milk, milk and kaffir lime leaves. Bring to the boil, and then turn down the heat to a bare simmer.
Add all the fish to the saucepan and poach for six minutes. Remove the fish pieces from pan with a slotted spoon and put them into a 23x23cm/9x9in baking dish. Reserve the remaining poaching liquor.
In a new saucepan, melt the butter, add the flour, and cook for one minute, stirring constantly.
Gradually add the poaching liquor, whisking to keep it smooth. Add the lime juice and zest, bring to the boil, then simmer five minutes, stirring all the time. Season with salt and freshly ground black pepper.
Add the peas and coriander, then pour the sauce into the baking dish until the fish pieces are almost covered.
For the topping, mash the cooked potato and sweet potato with the butter and spring onions, and season with salt and freshly ground black pepper.
Spread the topping over the fish, making rough peaks with the back of a fork, then bake for 25 minutes. Finish it off under a hot grill to crisp up.