To make the soup
In a heavy-bottomed pan, sweat the sliced onions gently in the butter for 4-5 minutes. Add the sliced leeks and sweat for another 2 minutes. Add the potatoes, cover with boiling water and boil over a high heat until the potatoes are cooked.
Remove from the heat and blitz the soup in a blender until smooth. Do this as quickly as possible to keep the lovely green colour.
To cook the smoked haddock
In a heavy bottomed pan, bring the milk to the boil. Poach the fillets of haddock in the milk for 5-6 minutes. Remove and set aside.
To poach the eggs
Bring a pan of water to the boil and add the vinegar and a pinch of salt. Gently whisk the water to create a whirlpool effect, then drop in the eggs and cook for 3-4 minutes for soft yolks. Remove the eggs and place them on kitchen paper to drain.
To serve
Ladle the soup into each bowl. Place a haddock fillet in the centre of each bowl, then place an egg on top. Finish with cracked black pepper and a bay leaf.