Preheat the oven to 350˚F. If making a sheet cake, line a 9 by 13-inch metal baking pan with parchment paper. If making a layer cake, line two 9-inch round cake pans with parchment rounds. If baking cupcakes, fill 2 (12-cavity) cupcake pans with paper liners and set aside.
In a large bowl, sift all purpose flour, baking powder, baking soda and salt together. Set aside. In a large measuring cup, mix together milk, sour cream and canola oil. Set aside.
In the bowl of a stand mixer fitted with the paddle attachment, cream the butter and sugar together at medium speed until light and fluffy, about 3 to 4 minutes.
Add the eggs one at a time, mixing at medium speed until well incorporated. Scrape down the sides of the bowl and add vanilla. Mix for 1 minute more.
Add half of the flour mixture to the stand mixer bowl. Mix at low speed for about 30 seconds. Add milk mixture and mix for 30 seconds more. Finally, add remaining flour mixture and mix just until no streaks of flour remain. Remove the bowl from the stand mixture and use a rubber spatula to fold the batter together by hand to ensure everything is well mixed.
If making a sheet cake, scrape the batter into the prepared 9 by 13 inch cake pan and bake for 45 minutes, or until set and a cake tester inserted in the center comes out clean. If baking a layer cake, divide the batter between the two prepared pans and bake for 30 to 32 minutes or until set and a cake tester inserted in the center comes out clean. If baking cupcakes, fill each cupcake cavity about ¾ full and bake for 20 to 22 minutes, or until set and a cake tester inserted in the center comes out clean.
Let cool completely before removing from pans and adding frosting.