There are a lot of posts about this issue both on this forum and elsewhere. I ran into this issue recently as well. I have shared hosting, and after a lot of digging, this is what I found out (YMMV...):
0. The fundamental issue here seems to be about who "owns" the folder 'blogs.dir' and its subfolders. If one runs ones own server and has complete access to everything on it, ownership is straightforward to determine and change, if needed. If one is on shared hosting, folder ownership is largely invisible, and one can't typically change it oneself.
1. When Wordpress MU is first installed, all of the files and folders have owner and group set to whatever username the server is set to assign for you (if you are on shared hosting, that decision is made by the host, not you!)
2. Until the first time one tries to upload an image, the wp-content folder does NOT contain a folder called 'blogs.dir'.
3. The first time an image is uploaded, a folder called 'blogs.dir' is created. The owner and group for this folder and all of its subfolders is set to 'nobody'. I have no idea why it is important for 'blogs.dir' to have different ownership, but it seems to matter a great deal.
4. The implications of having a folder set to 'nobody' is that one cannot delete it or upload files directly to it using FTP, but one CAN upload files using the WPMU file/image uploader.
5. If, for any reason, blogs.dir or any of its subfolders has its ownership changed away from 'nobody', the uploading of images will fail with the famous error message "...is its parent directory writeable by the server?"
6. Some people have tried to solve this by changing file/folder permissions. Some have succeeded by changing the permissions to 777. Others have not had this work. The issue does not seem to be fundamentally a permissions issue but an ownership issue.
7. With shared hosting, I couldn't even SEE the ownership of the files and folders until I asked my host to enable SSH access. Via SSH access I could see the ownership by typing ' ls -l ' I still couldn't change the ownership to 'nobody' and had to have my webhost do it for me.
8. Once 'blog.dir' and all subfolders and files had both its owner and group set to 'nobody', everything worked normally.
I hope this post is helpful to some people. Obviously a lot of us have torn our hair out over it!