Preheat your oven to 350°F. Line an 8x8-inch baking pan with parchment paper leaving a 2-inch overhang at each side.
Melt together butter and chocolate either in a saucepan over very low heat or in the microwave and stir until smooth.
In a large bowl, combine eggs, both sugars, salt, vanilla and beat with electric hand mixer until pale and thick. Stir in sour cream. Add warm melted chocolate mixture. Add flour and fold it through until just combined – do not over-mix.
Scrape batter into prepared pan. Bake for about 25 minutes until puffed and just set in the center. A skewer inserted into the center should come out with a few moist crumbs attached. Transfer to a wire rack and let cool completely in the pan. Refrigerate for at least 1 hour (this is key to the soft fudgy texture).
For the icing, bring hot water, butter, corn syrup and salt to a simmer in a small saucepan over medium heat. Remove from heat and add chopped chocolate. Let stand for 1 minute then whisk until smooth and glossy. Pour over cooled brownie slab and refrigerate until set. Then top with candy-coated chocolate pieces and slice into squares.