1. Amazon S3 would be a good way to host them, or you can write them directly to a directory on your web server either will do, Amazon will probably be faster and more resilient than your webserver. Dollar for dollar, you just can't scale and provide services like Amazon and the other do, at the price point that they are competing at. I always advice people that don't have infrastructure yet, to not get in that game. It has been turned into a commodity that few small companies can do at anywhere near the quality or speed per dollar that the providers can. If you want deep control of your systems go with Amazon and set your server up as an image on EC2 while using S3 for cheap storage. If you are not so concerned with having control of every little detail, go with StackMob or Heruko, just remember that these services have their own API's and platform, it can be a pain to port the back end away from them should you choose to.
2. Some apps are probably storing them on a flat file structure while others may be databasing them, the latter can cause performance degradation. If you need to store them in a searchable or index-able datastore it is better to store the attributes you need in a datastore with the filename and then return the path to the file in the filesystem. Also some are probably prefetching while others are not, you are going to have to look at your application requirements and see if you can reliability predict what images the user is going to access, if you can and the likelihood that they will look at the image is high, you should prefetch them.
3. Why an IOS developer? Why not find someone good with jQuery mobile. Most of the mobile web toolkits can provide 90% of the ondevice features and all you have to do to make them a native app that can be provided in app stores is create an application with a web view type controller in it, and point it to the HTML file. By doing this, you just have to have a small launcher application build for iOS, Android and whatever else comes along.