I've used Swing and GWT pretty extensively. As mentioned by others, Swing is a good choice for a standalone Java app. I can't offer an opinion on Swing vs. SWT because I've never used SWT. But how many applications are standalone these days? Not too many.
If you want your application to be accessed from a browser, you probably want to use a javascript based UI. There are many javascript-based UI frameworks, e.g. YUI, Dojo, Prototype, JQuery, etc. Which to use? If you like programming in Javascript (not a simple language to master, btw) you may want to use one or more of these frameworks. However, if you are new to Java and don't know javascript, GWT may be very good choice, as it generally eliminates the need to know javascript (you write all your code in Java and the compiler generates highly optimized javascript for you, and almost always smooths out all the differences between browsers -- this is a big deal). I've used GWT for over a year now, and I highly recommend it. It can be used with Google app engine or with any other server-side technology. One question I would have is if GWT can be used effectively for a standalone app. I would imagine there are ways to do this, but I haven't researched it. If so, I would tend towards using GWT for a standalone app, as well, because then your code could be reused for a web-based interface, should that standalone app end up becoming web-enabled.