Preheat the oven to 350°F (175°C). Grease two 8-inch round cake pans and line the bottoms with parchment paper.
In a medium bowl, whisk together the flour, baking powder, baking soda, salt, cinnamon, nutmeg, and ginger.
In a large bowl, beat the butter, oil, brown sugar, and granulated sugar until creamy and well combined.
Add the eggs one at a time, mixing after each addition. Mix in the vanilla and sour cream.
Gradually add the dry ingredients and mix just until combined. Avoid overmixing.
Gently fold the finely diced apples into the batter. The batter will be fairly thick.
Divide the batter evenly between the two prepared cake pans and smooth the tops.
Bake for 28–35 minutes, or until a toothpick inserted into the center comes out clean or with a few moist crumbs.
Let the cakes cool in their pans for about 15 minutes, then transfer them to a wire rack and cool completely before frosting.
To make the frosting, beat the softened cream cheese and butter until completely smooth and creamy.
Gradually add the powdered sugar, followed by the vanilla and a pinch of salt. Beat until fluffy.
Place the first cake layer on a serving plate. Spread a generous layer of cream cheese frosting over the top.
Add the second cake layer and spread frosting generously over the top. For the rustic look shown in the image, you can leave the sides mostly unfrosted.
Pipe a few small frosting swirls around the top and finish with a light dusting of cinnamon.