Preheat the oven to 350°F. Line an 8x8-inch baking pan with parchment paper and lightly coat with non-stick cooking spray.
In a large mixing bowl, cream the butter and granulated sugar until light and smooth. Add the eggs and vanilla extract, then mix until fully combined.
In a separate bowl, whisk together the flour, cocoa powder, and salt. Slowly add the dry ingredients into the wet ingredients and mix just until combined. Avoid overmixing to keep the brownies soft and fudgy.
Fold in the chocolate chips and chopped walnuts using a rubber spatula. Transfer the batter to the prepared baking pan and spread into an even layer.
Bake for 22 to 26 minutes, or until a toothpick inserted into the center comes out with a few moist crumbs. The brownies will continue to set as they cool.
Let the brownies cool completely in the pan before frosting.
To make the frosting, beat the butter and unsweetened cocoa powder together in a medium bowl. Add 1 cup powdered sugar and mix until combined. Add milk, 1 tablespoon at a time, until the frosting reaches a smooth, spreadable consistency. Add the remaining powdered sugar if a thicker frosting is desired.
Spread the frosting evenly over the cooled brownies. Slice into squares and serve.