Hi Satya, I'd think GWT RPC is most likely the way to go.
I might be wrong about this, but I believe the gwt RPC solution is built on top of RequestBuilder. It adds functionality on top of RequestBuilder such as automatic serialization of java classes and makes it pretty trivial to send data back and forth. Also, gwt RPC is probably the most popular solution at this time and so you'll find a lot more support in the form of tutorials and blog articles.
I tried "rolling my own" client/server mechanism using RequestBuilder, and it's doable, but in the end, gwt RPC already does everything I needed to implement in my custom solution so I decided to go back to it.
The only reason I could see needing to use RequestBuilder is if you need to do something outside the lines that doesn't work inside gwt RPC. For example, in one application, I needed to communicate using jsonp from my client code to a third party rest api that I didn't have control over. In this case, I wasn't able to use gwt rpc because I didn't have access to the server component.