Preheat oven to 350 degrees F.
In a large bowl, sift together flour, cocoa powder, baking soda and salt. Set aside.
In a separate large bowl, use a hand mixer to beat softened butter and sugar together on medium speed for 5 minutes or until light and fluffy.
Once light and fluffy, beat in eggs, one at a time.
Use a rubber spatula to mix in sour cream, milk, white vinegar, red food coloring and vanilla.
Gradually stir in flour mixture or use a hand mixer to beat it in on low speed until just blended. Do not overbeat or your cupcakes will be tough.
Let batter rest on the counter for 10 minutes.
Spoon batter into 24 cupcake liners inside muffin tins, filling each cup 2/3 full. I used larger paper liners, if using smaller you may get as many as 30 cupcakes.
Bake 22-25 minutes or until toothpick inserted into cupcake comes out clean. If the toothpick does not come out clean, continue cooking or center will fall.
Cool in pans on wire rack 5 minutes. Remove from pans; cool completely.
While cupcakes cook, mix together all ingredients with hand beaters in a large bowl, then pipe onto cupcakes before serving. Adjust amount of powdered sugar added to fit preference of consistency/thickness.