With an electric mixer (either hand or stand), beat butter until pale, about 3-4 minutes on medium.
Scrape down the bowl.
Add 3½ cups powdered sugar, cocoa powder, vanilla, and 2 tablespoons of milk.
Mix on low until powdered sugar and cocoa powder are incorporated.
If the frosting is too dry, add another tablespoon of milk. If the frosting is too wet, add powdered sugar 2 tablespoons at a time until it reaches a spreadable consistency.
Butter: You can use unsalted butter along with a couple pinches of salt. Also, be sure to have your butter at the right temperature. Room temperature means the butter should be about 72 F. The butter should give a little when pressed but should hold its shape overall. The butter shouldn't be soft and melty.
Dry ingredients: if your powdered sugar and/or cocoa powder are lumpy, sift them before adding them into the butter. It will help them incorporate more easily into the butter.
Cocoa powder: I've used unsweetened cocoa powder and Dutch-processed cocoa powder. Both have worked well.
Heavy cream: Using heavy cream will give you a slightly lighter, fluffier frosting. However, milk or half-and-half will also work.