RequestBuilder is basically a wrapper around XMLHTTPRequest. It can be used but IMHO I would use one of the high level abstractions which are:
GWT RPC is the easiest to get started but you will have stronlgy coupling between backend and frontend and there are some pitfalls (if you update the RPC code on the backend, you have to cope with seralizations errors from clients with outdated versions of the frontend code) you have to be aware of.
RequestFactory is another choice which supports transferring only deltas (things that changed). This is quite handy for CRUD like applications. However like RPC you will have strong coupling between backend/frontend.
Both GWT-RCP and RF works if you use Java on the backend (theoratically you could use it with another language on the backend, but you would have to implement the backend logic yourself).
Errai provides various communcation protocols (EventBus, JAX-RS, RPC). Again this will lead to a stronger coupling between backend and frontend (maybe with the exception of JAX-RS). But In general Errai is quite easy to use.
Finally you could use a Restful approach. This is best if you want to want to de-couple your frontend from your backend (For example if you want to use the same backend from other non-GWT clients: Android, etc).This might be more involved than the above solutions (although RestyGWT provides a nice abstractions) but I would recommend it as it provides a lot of flexibility and you can evolve your backend independently from your frontend.