Preheat oven to 350F (180C) and grease two 9 (23cm) cake pans. Beat oil and sugars together in a large bowl until combined.
Add eggs, one at a time, beating well after each addition. Next, combine flour, cinnamon, baking soda, baking powder and salt in a separate large bowl.
Add flour mixture to egg mixture.
Mix, just until combined. Fold in carrots. Divide batter evenly in prepared pans.
Bake in preheated oven 25 to 30 minutes or until a toothpick inserted in centre of cake comes out clean. Cool in pans on wire cooling rack for 20 minutes.
Remove from pans and cool completely on wire cooling rack.For icing, cream butter and cream cheese in a medium bowl.
Add icing sugar, one cup at a time. Beat well after each addition.
Add vanilla. Continue beating until fluffy.
Add 1 tbsp milk at a time to thin out icing if necessary.