Melt the butter in a large saucepan over a medium heat. When it foams, add the potatoes and onions, season with salt and pepper, and stir to mix. Cover with a piece of parchment paper, then turn the heat down to low, cover with the saucepan lid and cook on a gentle heat for 10 minutes, stirring every few minutes.
Prepare the sprouts. Trim the base, remove and discard the outer two or three leaves, and slice the sprouts thinly. Set aside.
When the potatoes and onions have been cooking for 10 minutes, add the chicken stock and boil for 2–3 minutes, until the potatoes are tender. Add the sliced sprouts to the pan and cook over a high heat, with the lid off, until tender, approximately 2–3 minutes. Do not overcook, or the sprouts will lose their fresh colour and flavour. Add the cream or milk and blend until smooth. Taste for seasoning.
To prepare the hazelnuts and the bacon, preheat the oven to 200°C/Fan 180°C /Gas 6. Place the hazelnuts on a baking tray and roast in the preheated oven for 6–8 minutes, checking regularly, as they can burn quickly. Wait to cool and rub to remove the skins. Chop nuts coarsely and set aside.
To make the bacon, line a baking tray with parchment paper. Put the sugar in a bowl and dip both sides of the streaky bacon in it until completely coated. Bake for 5-6 minutes in the preheated oven until caramelised. Remove, then leave to cool and crisp up. Once crisp, break into pieces around 1cm in size.
Reheat the soup, pour into bowls and scatter with the hazelnuts and candied bacon. Serve immediately.