I've recently created an EPiServer 5 project in Visual Studio, then came to deploy it to IIS and experienced none of my uploaded images (and documents) being displayed. At first i thought i'd got my Virtual Path Provider (VPP) settings wrong in the Web.Config. However i double checked and they were fine - i also was able to upload new images/documents so the path (and permissions) were fine.
I realised it must have been a problem with IIS serving the images, so after comparing the EPiServer Demo site's IIS properties i discovered the solution - i needed to enable a wildcard mapping for aspnet_isapi.dll.
This can be done by clicking the Configuration Button on the Home Directory tab of the offending site's IIS site properties. (see below)
The next screen is different if you use XP - which only has one box, but allows the extension of * to be added, Windows 2003 (shown below) separates it into two boxes
The file to add is typically located here:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
Make sure you DO NOT check the "Verify that file exists" checkbox
Then hey presto and all my images were displayed!