Dan Drezner once again shows why he is a number one seed in twitterfightclub (follow at #TFC12). He posted an excellent set of do's and don'ts for undergrads today and will post for post-grads later this week.
My previous post was more aimed at the folks who had applied and had not gotten in, so I didn't focus on what one could do in undergrad to improve one's chances. Dan's recommendations are excellent (especially don't expect much from emailing profs where you want to go, as they have many such requests and yet mostly little input).
The one thing I would add to Dan's "do" list, and this is more for prep than for admission: while in college, take as much social science and history as possible. Once in grad school, you will have limited opportunities to get some psychology, sociology, whatever. I did take an undergrad sociology theory class when I was a grad student--to get some Weber and Durkheim mostly. But I regret not taking sociology and psychology in college. I got a heap of history and enough econ, but I should have branched out a bit more. So much of our stuff crosses boundaries, but there is usually little impetus or time to do that in grad school. I am not sure it will help get you admitted to grad school, but it will help you once you make it. And it is not bad for you, if you end up doing something else.