Preheat oven to 350 F. Grease a 9x13-inch baking dish.
In a large saucepan, melt butter.
Whisk in sugar until combined.
Add eggs and vanilla; whisk until just incorporated.
Stir in flour, cocoa powder, and salt until just combined.
Pour batter into prepared baking dish.
Bake for 20-30 minutes, or until edges are set and a toothpick inserted in the center comes out with fudgy crumbs.
When the brownies are finished baking, start the frosting.
Beat together butter and cream cheese until well-combined.
Add milk, cocoa powder, and powdered sugar. Stir in until well-combined.
Spread frosting over warm (not hot) brownies.
Notes
Butter: I use salted butter in this recipe.
All-purpose flour: Be sure to properly measure the flour. To properly measure the flour, either weigh it (click on "metric" under the ingredients for the weights), or sift/stir the flour to break it up. Then lightly spoon into the measuring cup. Too much flour will give you dense, cakey brownies.
Cream cheese: I recommend using full-fat cream cheese.
Milk: Any type of milk will work. Heavy cream will also work, but it will give you lighter, fluffier frosting.