That's where things get tricky, when you want a user to be able to create and control their own own profile. I haven't had the chance to play with the different user roles wordpress allows, but giving someone "contributor" or "author" permissions gives them some control over their own posts, but I don't think there's an easy way to do what we're talking about here.
Classipress seems to have a way to do this and allow users to register and upload images etc...it's almost the ideal solution for what I'm wanting to do..except it doesn't look like you can also have regular categories and blog posts together with the classified listings. You'd have to have a separate install of wordpress if you wanted to post articles and blog posts and then tie that into classipress for the directory part of things.
Getting back to wordpress for a sec, the following may be helpful to you
http://www.wpdesigner.com/2008/03/01/how-to-use-wordpress-as-a-membership-directory/ and you might also want to look at some existing directory scripts that are available and might be adapted to do just what you want.
phpmydirectory and phpyellow are two I've looked at before and if you look at Hotscripts in the php section under classifieds scripts you'll find a number more.
If you decide nothing out there does just what you need and you really want to create your own - let me know as I'd love to talk and run some ideas past you.