I've been meaning to write a blog post on it, but you know how it goes. Never enough time.
Basically, it comes down to study + experience. But study is absolutely a necessary prerequisite; otherwise you have no criteria to decide what went wrong when something fails.
I did a post here about some books that I found useful
http://www.jeremytunnell.com/posts/books-on-user-experience-...
I basically spent a year working part-time and studying part-time. I read every UX book, article, and website that I could find, and then I got experience by offering to do a heuristic analysis for startups on the Washington DC hacker news list for $20 per hour.
This kind of thing:
http://www.jeremytunnell.com/posts/watchparty-tv-a-usability...