Melt the butter in a heavy-based saucepan and add the leek and onion and a splash of water. Cover and cook on a low heat while you prepare the artichokes.
Brush off any dirt and peel. Chop into small chunks and throw into the pan with the leeks and onions. Stir around and season. Cover again and saute until the artichokes are just soft. Add the stock and cook until the mixture is really soft (about 15 minutes).
Add the milk and leave to cool.
To toast the hazelnuts preheat oven to 180C. Spread out the hazelnuts in a single layer on a baking tray and roast for 10 minutes. To remove the skins rub gently in a clean tea towel.
Add the hazelnuts and blend in a food processor until the mixture is fairly smooth; but it's nice to have a little crunch of nut left in.
Put the soup back into a pan, add half the cream then taste. Season to taste. Reheat gently and serve with some extra roughly chopped hazelnuts scattered over each bowlful.