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.