I have been using 'stream.publish' in the past, going off the most recent examples on their site I have tried using 'feed' but was getting some strange results (images not pulling through unless the application was running from a tab).
http://developers.facebook.com/docs/reference/javascript/FB.ui/
I was wondering what the differences are, if there are any other methods and when I should use them?
stream.publish is used for posting to the current users wall, as you know. You can use "feed" to post to a friend's wall, and "apprequests" to send a notification (Requests 2.0). https://developers.facebook.com/docs/reference/dialogs/requests/
I use all three. While I've had issues with images appearing in the past, I haven't had recent issues. I believe it was just caching issues Facebooks side. Make sure you don't have restrictions on your server for loading images, like checking the referer to make sure they are on your site.