Well, there is also one big disadvantage to using the Application object. It won't work if deploying to a webfarm, since the object is not shared across servers.
If those were your only two options then I'd definitely go with a database, for scalability reasons.
However, another approach you might want to look into, especially if this chat app is embedded in a web application, is using SignalR, which is basically built for this kind of scenario.
Here's a tutorial on how to create a simple chat application using SignalR: http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started-with-signalr-20