I've worked out a great way to do this in Gimp that is fairly straightforward. Let me see if I can explain:
1.) Open the wallpaper you'd like to crop. File-->Open
2.) Select the Rectangle Select tool. Top left of the Toolbox
3.) Draw a rectangle of any size on your image.
4.) With the select rectangle highlighted, specify the size of your select rectangle as 640 x 960. Toolbox-->Size
5.) Check the "Fixed: Aspect Ratio" check box in the Toolbox.
6.) You can now move adjust the size of the select box to best fit your image and maintain the aspect ratio of the iPhone. For optimal results, the size must stay above 640 x 960.
7.) Once you have your wallpaper framed correctly, click Image-->Crop to Selection
8.) Now click Image-->Scale Image. Input the width of 640 and tab to the next box. If you did steps 3 - 5 correctly, the Height will auto-populate as 960.
9.) Click Scale.
That's it! Then save your image, and you're all set.