Preheat oven to 350F. Line two cookie sheets with silicone baking mats or parchment paper. Set aside.
Beat butter and sugar until light and fluffy, about 3 minutes on high.
Add the eggs and vanilla, and mix until well-combined.
Mix in sour cream, cocoa powder, and food color until combined.
Add the flour and baking powder; mix until just combined.
Drop by 1.5 tablespoon scoops onto prepared baking sheets, spacing the scoops 2 inches apart.
Bake for 8-12 minutes, or until the top springs back when touched.
Allow to cool for 5 minutes on the tray before transferring to a wire rack.
Let the cookies cool to room temperature before frosting.
To make the frosting, beat butter and cream cheese together until well-combined, about 3 minutes on high.
Add vanilla and powdered sugar.
Mix on low for 30 seconds.
Increase speed to high, and continue to beat for 2 more minutes, scraping the sides as needed.
Spread the frosting on the cooled cookies.
Store cookies, covered, in the fridge.
Notes
Butter - I use salted butter. If using unsalted butter, add an additional 1/4 teaspoon of salt to the cookies an a pinch or two of salt to the frosting. Be sure that your butter isn't too warm. If it is, the cookies will spread too much as they bake.
Vanilla extract - Feel free to add additional vanilla extract if you prefer.
Sour cream - I recommend using full-fat sour cream in this recipe.
Cocoa powder - I use unsweetened cocoa powder. I haven't tried using Dutch-processed cocoa powder.
Red food coloring - Red velvet bakery emulsion (a combination of red velvet flavoring and red dye) will also work.
All-purpose flour - It's important to properly measure the flour. Either weigh the flour or sift/stir it to break it up. Lightly spoon into the measuring cup and level.
Cream cheese - I recommend either full-fat or 1/3-less fat cream cheese.