I have been meaning to answer this question but got caught up in other items. The problem might be two fold in your case…and consequently, there are a couple of ways to solve it.
1) (If you have ssh access to your webserver AND have some admin priviledges on the server) The directory that you are uploading into has to be writeable by the webserver service (apache in most cases) and the files that are uploaded simply inherits the permissions of the directory they are put into. So if you have ssh (or telnet) access to your webserver, type
chmod -R 766 */path_to/uploads_directory_name*
You also have to make sure that the directory is owned by the webserver service. To do this without messings things up too much, type
chgrp apache */path_to/uploads_directory_name* (here I am considering that the webserver service is started by a user who belongs to the “apache” group, if you are completely confused, send me an email and I will try to help)
2) (if you host your blog on a webhost, not your own, so restricted access) Ask your webhost to please make sure your uploads directory from above is writeable by the webserver service (and you). They will figure out their own way. Then do the
chmod -R 766 */path_to/uploads_directory_name*
This should make the uploads directory work correctly.