Hi waneck,
I can speak to the benefits of using a 3rd party server solution. I’m part of the ElectroServer team, so while much of what I have to say is ElectroServer-specific, it (in most cases) applies to the other major servers out there.
You specifically mentioned the built-in ability for rooms and chat. Yes, that is useful. But that is just a tiny sliver of what most modern servers provide. I could go on for a long time about various features so I’ll just touch on a couple more big ones that make this type of thing attractive to game devs.
Scalability
In my opinion, one of the biggest things that something like ElectroServer (ES) provides is scale. As you may have experience, it isn’t all that difficult to create a server of your own. But it could take months or years to make it scalable to tens of thousands, or hundreds of thousands of concurrent users. Assuming that you need to scale to at least a few thousand users, laying down a few thousand $ for something that works could save you much more than building it…by orders of magnitude.
Extension model
Most good servers give you the ability to extend its functionality through custom code that you write that will plug right in. In that way you can make use of the scalability of the server but still use your own custom code.
Connection types
ES gives you the ability have the server listen on many ip/ports at the same time. Each connection listener is of a certain type. So, you can have a TCP listener, UDP, or HTTP (and for Flash RTMP for video streaming). HTTP is used to get through firewalls by acting like normal HTTP traffic.
Protocol
If you custom-write your own protocol for your own server, then you’ll likely achieve the smallest message size possible. But, that takes a lot of time to do and you might have to refactor it later if it doesn’t fit your needs. ES provides an extremeley flexible protocol that maintains datatypes and deep-structured objects, but is still light weight.
Lowering risk
To a developer this doesn’t hop to mind quickly as a big deal. But to managers it does. If you write your own solution then you run the risk of server crashes, performance problems, scalability issues, etc. Why not use a product that has already had these problems, and solved them.
There are certainly many more reasons (stats gathering, admin tools, security, etc) that I won’t get into. Hopefully this was of some help, and good luck with your next project!