With an electric mixer (either hand or stand), beat butter and cream cheese together until well-combined, about 3-4 minutes on medium.
Scrape down the bowl.
Add 3 cups powdered sugar, cocoa powder, and vanilla.
Mix on low until powdered sugar and cocoa powder are incorporated.
If the frosting is too wet or tart, add powdered sugar 2 tablespoons at a time until it reaches desired consistency and sweetness.
Butter: I like to use salted butter. If you prefer to use unsalted butter, just add a pinch or so of salt to the frosting. Also, cool room temperature means that the butter should dent when pressed, but it shouldn't be warm enough that it's losing its shape.
Cream cheese: I recommend using full-fat cream cheese for the richest frosting. Reduced fat (⅓ less fat cream cheese) will also work. However, I don't recommend using fat-free cream cheese.
Powdered sugar: If your powdered sugar is lumpy, sifting the powdered sugar before adding it will help the powdered sugar better incorporate into the frosting.
Cocoa powder: I use regular unsweetened cocoa powder in this frosting.
Vanilla extract: The vanilla enhances the chocolate flavor. However, vanilla extract is expensive, so feel free to decrease the vanilla to 1 teaspoon if you prefer.