Preheat the oven to 350° F. Line a cupcake pan with baking cups.
In a medium bowl, whisk together flour, baking powder, baking soda and salt. Set aside.
In a large mixing bowl with an electric mixer, beat together the butter and brown sugar until light and creamy, about 2 minutes. Add the eggs one at a time, beating well after each addition. Beat in the vanilla extract, sour cream and vegetable oil. Scrape down the sides and bottom of the bowl as necessary.
Gradually add in the flour mixture in three parts, alternating with milk (So it goes flour, milk, flour, milk, flour). Mix until batter is uniform and smooth (do not over mix).
Fill baking cups about 3/4 full and bake for 16 to 18 minutes, or until a toothpick inserted into the center comes out clean. Remove from the oven, transfer cupcakes to a wire rack and allow them to cool to room temperature.
Frosting
For the frosting, beat butter until smooth and creamy. Add confectioners’ sugar and mix on low until combined, then turn speed up to medium high and mix until fluffy, about 3 minutes.
Add caramel and vanilla, and mix until combined. Taste, and, if desired, mix in salt. Scrape down the sides and bottom of the bowl as necessary.
Transfer frosting to a piping bag with desired tip. Frost cooled cupcakes. Add a drizzle of caramel if desired and serve.
Notes
Brown sugar: I found that light (or golden) works better than dark brown sugar, which can weigh down the cupcakes.Sour cream: Use full-fat for best results. Greek yogurt is a good substitution.Milk: Again, use full-fat whole milk. It makes richer, more tender desserts.Store in an airtight container at room temperature for up to 3 or 4 days.Freeze cupcakes in an airtight container for up to 3 months. Individually wrap in plastic wrap for ultimate freshness.