Preheat oven to 350 degrees F. Line the bottom of two 9-inch round cake pans with parchment paper and then spray well with non-stick cooking spray.
In a large mixing bowl combine the flour, sugars, cocoa powder, baking powder, baking soda and salt.
Add oil, eggs, vanilla, milk and sour cream and mix until well combined. Reduce speed and carefully pour in the boiling water. Beat on high speed for 1 minute to add air to the batter.
Divide batter evenly between the prepared cake pans. Bake for 28-33 minutes, or until a toothpick inserted in the center comes out clean.
Remove from the oven and allow to cool for 5 minutes in the pans. Invert cakes onto a wire cooling rack to cool completely. (Once cooled I like to wrap them really well in plastic wrap and then tinfoil and freeze them until the next day, when I frost them. They're easiest to frost frozen!)
For the Oreo Cream Filling
Beat the softened butter with electric mixers until light in color, about 3 minutes.
Add powdered sugar, ½ a cup at a time. Beat well to combine between each addition.
Add vanilla and milk and mix well. For thinner frosting add a little more milk. For thicker frosting add a little more powdered sugar. Fold in chopped Oreo cookie pieces. Spread filling over the top of one of the cake rounds. Top with the second cake round. Cover the cakes with chocolate frosting.
For the frosting
Add cocoa powder to a bowl with the melted butter and mix well to combine. Alternately add powdered sugar and milk, beating until your reach your desired spreading consistency.