I was at a company that switched us over from Hours to Story Points for our estimations. I remember it being difficult to understand it, and we all chaffed against the idea. However, once we figured out how to do it and started doing it, I think our estimations became much more accurate. We were much better able to complete our sprints on time and to better be able to estimate duration of remaining work. Once a couple weeks had passed, we had a good idea of our individual teams’ velocities and could then translate the story points into days and weeks of work. We then used that to know what we could complete within a given time-span.
I guess the same could work if estimating in hours, as long as it is understood that each team will have a different number of hours per week in their velocity. One team may do 200 hours, while another may do 150 hours on average. This doesn't mean one team is working any harder than the other, it just means that they estimate hours differently, or that some team members may not have as much time available to work on the project, for instance, they may always be pulled into bug fixes, or help on other projects, which reduces their available time for this project.
Anyway, what do you think? And why? Which is best? Hours, or Story Points?