Brush up on algorithmic basics - linked lists, trees, hashmaps, Big-O, runtime vs memory usage, stuff like that. Then move on and go over domain-specific stuff. E.g., if it's web programming in ruby, study some of the main points of that.
You might be asked to code a little bit on a whiteboard, but probably only something small. You'll be asked some puzzles, some technical knowledge questions, and some general software engineering questions.
I can't remember too many questions I've been asked before, but here are a small sampling:
You have a large list of intengers (maybe 1 million of them), devise an algorithm to determine if there is a way to split them into two groups, such that the sums of the two groups are equal.
You're working for facebook, and are asked to improve the load time of their main feed page. What are some ways you might look into?
Write code to reverse the order of the words in a sentence.
Given a corpus of known spam emails and non-spam emails, how would you classify new, unknown emails (this was for a job involving machine learning).
You need to pick a collection to store some elements, and want insertions and in-order traversals to be as fast as possible. What do you use? What if you want everything to be sorted? What if you want merges to be fast? etc.