FWIW, I use both LJArchive and ghewgill's ljdump Python script. (Though I hacked at it a tad at first - partly because it broke on Windows if icon keywords contained certain "bad" characters when it tried to convert the keyword to a filename, and partly because I didn't want it to backup userpics every single time, since that takes pretty long, since it always downloads the entire lot since it can't tell which ones are new.)
However, I haven't tried to get either of them to speak to Dreamwidth so I can't say whether that would work or whether the API has changed too much. Worth a try, I suppose.