I think you are all missing the point here. Remember that on a unix / linux server you have to set permissions AND ownership. You can set permissions on a folder but if you are not the owner than you can't copy files in there.
When you upload files with the media form in WordPress, files are being stored in a temporay location. When the upload is succesfull WordPress tries to move them to your upload folder. Normally that is wp-content/uploads. It will only succeed if your write permissions are ok (and no, 777 is not needed, just make sure that you have write permissions. 666 should be enough.
When the write permissions are correctly set you should make sure that you own the uploads folder. Your FTP client should show who owns the folder. This should be the loginname that you use to connect to the ftp server.
I noticed when I had the problem that the owner of the uploads folder was not correct. So I used the quick and dirty solution:
1. rename your uploads folder to uploadsold
2. make a new uploads folder and set the permissions to 666
3. drag the contents of the uploadsold folder to the uploads folder
4. remove the now empty uploadsold folder (check first)
Presto your done! Uploading now works like a charm because both owner and permissions are ok. No SSH access needed. Just use your FTP client.
Astalapasta from The Netherlands,