This is a great movie. The action, acting, dialogue, and plotting are all great. The film looks good and the story holds.
Robert Downey Jr. kills as the great detective, and Jude Law is great in the supporting (but super important) role of Dr. Watson. These two actors together have some of the best on-screen chemistry I've seen in years. [Downey caught some flak from studio execs for kinda saying that the two could be lovers. I, for one, have always thought the friendship between the two partners/roommates should be presented as more than just that.]
Guy Ritchie has been accused of making things move too fast, but I think he's a master of pacing and knows exactly what he's doing. This movie just keeps moving and moving but never feels overly tense or strained. Everything serves the story and characters.
I'm a fan of the character in books, but I've never really enjoyed the movies or TV shows. Even though he's eccentric, Holmes has always been portrayed as a bit too stuffy for my taste. And Watson is always kind of the bumbling, ignorant sidekick. I have to admit that Sir Arthur Conan Doyle's stories have been pretty accurately adapted in the past, but I'm one of many, it seems, who have always thought that Holmes should be portrayed as an action hero. And he should be. I love seeing Holmes jump out of windows, beat people up, and get in gunfights.
But Holmes is no two-dimensional character. While the cocaine addiction is really shown in this movie, the audience does see that Holmes's amazing talents and eccentric ways do often distance him from other people.
In short, go see it. (I say it's a much better film than "Avatar", but it may be unfair to compare the two since they are meant to serve somewhat different entertainment purposes.)
[I was hoping that the hints at Moriarty would be left at just hints, but I guess you have to spell things out for some audience members. I'm definitely looking forward to a sequel.]