Preheat oven to 350°F/180°C/Gas 4. Line an 8×8-inch pan with parchment paper, leaving an overhang on two sides to act as handles for lifting the brownies out later. Spray lightly with non-stick spray.
In a large bowl, cream together butter and sugar until fluffy. Mix in eggs and vanilla until smooth.
In another bowl, whisk (or sift) together flour, cocoa powder, and salt.
Gradually add the dry ingredients to the wet, mixing until just combined. Do not overmix, or brownies may turn cakey.
Fold the chocolate chips and walnuts into the batter, and transfer to the prepared baking pan.
Spread the brownie batter into an even layer and transfer to the preheated oven.
Bake for 22-26 minutes or until a toothpick inserted into the center comes out clean. Brownies will still be soft and will finish setting while they cool.
To prepare the frosting, mix the butter with the cocoa powder and 1 cup powdered sugar. Add in one tablespoon of milk at a time until desired consistency is reached. If necessary, add the remaining ½ cup powdered sugar to thicken.
Once fully cooled, use the parchment overhang to lift the brownies out of the pan and spread frosting on top. Add extra chopped walnuts if using.
Slice the brownies into 12-16 pieces and enjoy!