Back to My Mac (iCloud)
If you're running Lion and have an iCloud account, you can use Back to My Mac. With Back to My Mac, your server will show up in the Finder's sidebar under Shared, just like it would if you were on the same local network.
This solution does not have a web interface, but I personally prefer connecting to my file servers the same way (through the Finder) whether I'm on the LAN or connecting remotely.
An alternative to iCloud that doesn't require Lion is Slink, which I highly recommend. I've been using Slink as an alternative to VPN for about a year without any problems.
Slink works similarly to VPN, connecting you to your network, not just your file server, but is extremely easy to setup (doesn't require entering a public IP anywhere). You setup your server by installing a System Preference pane (the Slink Agent), then setup the Slink app on each of the client computers.
Like Back to My Mac, this solution does not have a web interface. Also, like Back to My Mac, your server will show up in the Finder's sidebar once you've used Slink to make the connection.
You can purchase Slink from Slinkware directly or on the Mac App Store. They also have a demo available.
TeamViewer is a common cross-platform solution for remote control and file sharing over the Internet, and it's free for personal use. It doesn't integrate with the Finder as Back to My Mac and Slink do, but being cross-platform definitely has its advantages. It also doesn't have web-based access, but there are TeamViewer clients for OS X, Windows, Linux, iOS, and Android, which may make up for it.
For a web-based solution, you could use LogMeIn Pro. Because it's web-based, it's also cross-platform, and there are client apps for iOS and Android. Unfortunately, the free version doesn't include file sharing.
You may also want to check out LogMeIn Hamachi, which functions more like Slink, but with more options. I haven't tried Hamachi in a long time, but when I tested it, it was less reliable and more difficult to setup than Slink, so I went with Slink instead.