I would say it's not very accurate on a per-tweet basis, but when you analyze a bunch and you look at the breakdown of positive:neutral:negative and the different keywords, it can be pretty telling.
The best results obviously come with things that people feel strongly about, because they are more likely to use strong words associated with their sentiment.