OK.
The way I do it is like this:
In the program arguments you need
-noserver -port 1080
if you don't put the port, it will default to 80
in my launch file for my 1.7 minimum app I have
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-noserver -port 80 -startupUrl index.html com.roughian.appmin_1_7.Module"/>
but however you run it, you need those arguments.
You also need a local web server. I use Abyss (since Apache seemed like overkill) and set it up so that the document root was pointing to the /war/ directory of my project and the port it was using was 1080, and it was also set up to deal with PHP, of course.
As far as I can remember, that's all you have to do.
The advantage of setting a port number is that you can then set up *another* project with another port number, and another instance of Abyss which is pointed at the new project's /war/ directory and uses the new port number.
What is more, you can run both projects in hosted mode at the same time.
In GWT 2.0, you can do exactly the same thing, but if you want to run more than one project in development mode at the same time, you will also need to add
-portHosted 9998
(or some other unique hosted mode port number)
If that doesn't make sense, or doesn't work, or you need help setting up Abyss (if you decide to use it), let me know.