I'm using Dark_Samurai newest template, its in beta and can be found here:
http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=365567&

as you can see in that thread there are still issues with it, but its well documented and makes a perfect base. I'll have to add LAN support, but thats another story.

That templates uses a usual webserver with php and a mysql database backend to store all the server information (ip, port, name, number of players ...) and sends it directly to the clients which can display them in a list. sorting shouldn't be a big problem there, but i'm leaving it out for now.
Servers are sending a message to the webserver every 30 seconds, and if one doesn't do so for 180 seconds it will be deleted from the list.

However, one big problem remains:
There will be server on the list that won't be connectable because their owner didn't do port forwarding. I'm trying to counter this with UPnP for now, but there's a better method which is not included into this serverlist and is a bit more work to implement. Many commercial games like the half-life2 engine based titles are doing it this way:

The masterserver only saves the ip and port of the servers. The client will get a list of those and try to establish connections to them. The servers will answer with their name, number of players and the client can also calculate the ping-time.
If a server isn't connectable, it won't show up in the clients list. When using UDP for this, I'm not sure if this will pass the clients router, but it guess it would.

This is probably the best way, but it's a little more work and I'll go without it for now. For the LAN-mode, I've coded parts of this method already.