Place the haddock in a saucepan with the milk, bay leaf and a splash of water. Bring to a gentle simmer for about 5 minutes, until the fish flakes easily. Remove the fish and set aside, reserving the poaching milk.
In another pan, melt the butter and sauté the onion until soft and translucent, about 5 minutes.
Stir the diced potatoes into the onion base, then pour over the reserved poaching milk and the water or fish stock. Simmer gently for 10-15 minutes, until the potatoes are tender. Lightly mash some of the potato against the side of the pan to thicken the soup.
Flake the poached fish into large pieces, discarding the skin, and return it to the pot. Warm through gently - do not let it boil.
Season with salt and pepper to taste. Ladle into bowls, garnish with chopped parsley or chives, and serve hot with crusty bread.