Open up a photo in photoshop, make a new layer, then select the "rectangular marquee tool" and draw a rectangle over your photo fill it with the color white, with the rectangle still selected goto "select > modify > contract" and contract by 15-20 pixels, then hit the delete key. Goto "edit > transform > perspective" transform the photo frame like the image below.
Select the "magic wand tool" and select the inner part of the photo frame.
Select your background layer while it is selected then press "ctrl + c" then "ctrl + v". Hide your background layer ensuring your photo frame layer is on top of the of the bit you just copied and pasted. You should have something like this.
Set your opacity on your photo frame layer to 50% to make it easier to do the next step. Unhide your background layer and cut out the other half of the image that will be jumping out of the picture. I've also cut out the shadow to save me making my own.
Once selected goto "select > inverse" and hit the delete key. Now move this layer on top of your photo frame. layer you should have something like this.
Now its just a case of creating a new background to finish the image. Here's mine