For me the advantages are:
1.- If your application needs to feel like a desktop application this framework is as close as it gets.
2.- Because almost everything runs on the browser side you use less server processing and you can scale to more users. You can even create apps that download on the first access and then work without accessing the server.
3.- Because almost everything runs on the browser you need less server-side session information vs a framework like jsf. This means less complication when replicating sessions in a cluster.
4.- No javascript programming which is hard to test, and check that it works on multiple browsers.
Disadvantages
1.- The widgets in GWT are not pretty or offer lots of functionalities like data tables, context menus, etc. For that you need something like Smart GWT.
2.- Because it behaves like a desktop app, when you test, you have to test from the first page which leads to long testing cycles.
3.- Speaking of testing, you can't use tools like JMeter to test the app because it doesn't behave like a web app. You need to use it's own testing classes. Haven't use selenium.
4.- If you need your app to work like a web app it will not feel like a web app.
Personally I would use GWT in all my projects. I've seen it scale very well in production enviroments.
Regards,
Nestor