If I want to remove a background completely from a picture I usually use some form of Lasso/Paths selection depending on how defined the shapes are and then apply a feather of a couple of pixels.
Then I take the selection and create a new layer (Cntl+J). You can then create a completely white layer between the selection layer and the background using new solid color layer.
You then have the flexibility to create a mask on the selection layer to remove more background and a mask on the solid color layer to bring more background back in to fix error on the selection.
Hope that helps, and that it makes sense :0)
P.S. if using this method you can play around with the solid color layer to test out different colours of gradient fills etc...
1. Dupe BG layer
2. Make BG layer active again
3. Make new layer with BG color white
4. go to top layer (the duped BG layer) and using selections, eraser, whatever start removing the parts you don't want to see.
You can add layers between the white layer and the top layer to experiment with different effects on the white layer. For example, you can add a new layer, set to "multiply" mode, box for multiply-neutral color (white) checked, and then you can use filter/distort/lens correction/vignette to apply a vignette to the layer, and then fade this vignette layer in and out to change the intensity of the vignette.
if you're trying to put a white background behind an object, it's much quicker to shoot it on a white background to begin with. You can accomplish this with two flashes (one on object, one on background) or even with some clever use of natural light and reflectors. Plus, it looks far more convincing especially if the object has any indistinct edges.