In gimp this is fairly simple.
Just select the white area that you want affected (I'm assuming that there is white area also in the picture itself that you do not want to be transparent, if not, just right click on an area of the color you want to turn transparent) and right click, and in the colors menu select "color to alpha" when I do that in the newest version of gimp it takes out the gradients and makes it fade like you describe.
Update:
The first time I tested this, I used a Jpeg, but when I realized, I went back and did it again with a PNG and it worked just fine with both file types.