(I will assume you apply as "Software Engineer".)
In my experience it is really important to know the Computer Science basics. Be really(!) fit with the fundamental algorithms and data structures (Trees, Hashes, Sorting, Binary Search, Graph Algorithms), algorithm design (Books: "Introduction to Algorithms", "Algorithm Design") and the O-calculus.
Why? Good algorithms matters more for Google then anything else, so their interview focuses on such topics. In environments like Google the O-calculus really strikes back because they have no small scale problems. In addition you should be able to write algorithms to know down in your favorite programming language on a white board.
Other topics like operating system basics (Threads, Processes, Mutexes, Semaphores, ...) and software engineering (Testing, Refactoring, ...) are also important (but probably not that important).
The hints from Stevey Yegge are great. But IMHO he downplays a bit what is expected and what is considered a good answer.
I think that the training questions in "Programming Pearls" (really nice book!) are remarkably similar to interview questions there. TopCoder really don't hurt, but try to find really good algorithms for the problems, even if you need a little bit more time.
And most important: Be relaxed. Enjoy the trip to the Google location (if you have an onsite interview) and the smalltalk with these extremely smart people.