Ok so if you want your application to support WP, iOS, Android, ... you'll have to look at some technology that allows you to build an API that can easily be used by any of these platforms. In that case you might want to look at the new ASP.NET Web API which allows you to build an API that supports content negotiation.
Besides that you'll also want to look at how you can store data in Windows Azure using Blob Storage. This allows you to give all your files an URI and have Blob Storage serve these files to your users instead of your application having to do this. This will drastically decrease the load on your front-end. You can even combine this with the CDN to make your images available over multiple edge servers to serve the content from a location closest to your users.
Since you're working with images I'm assuming you'll be working with those images, like creating thumbnails, applying filters, ... These tasks could use lots of resources and you wouldn't want to put all that load on your front-end (Web Role / Web Site). That's why it's a common practice to off-load this work to your back-end (Worker Role) using queues. Here is a complete example coming from the training kit that creates thumbnails using a Worker Role and a queue: http://msdn.microsoft.com/en-us/vs2010trainingcourse_introtowindowsazurelabvs2010_topic3.aspx
As for the Silverlight part, personally, I wouldn't use Silverlight since you'll be limiting yourself to desktops only. Using ASP.NET MVC + jQuery / (any other JS framework) will allow mobile/tablet users to also work with your site even if there isn't a native application available.