An interesting Sherlock Holmes movie, caught as it is between the age of Jeremy Brett (who played the role from 1984 to 1994) and the modern age of a dozen Sherlocks which started in 2009 with Robert Downey Jr. in the nasty "Sherlock Holmes," and includes Benedict Cumberbatch (2010 on) and Jonny Lee Miller (2012 on).
In this 2004 production shot entirely in heavy fog, Rupert Everett tackles the role of Holmes with Ian Hart as Dr. Watson. We start late in their history together, with Watson leaving his American fiancée's side to take Holmes a mystery he hopes will bring his friend out of his opium den and his boredom. Everett is quite good as Holmes, Hart is good as Watson, Neil Dudgeon is fine as Lestrade ... but they decided to go with a non-canon story, and it isn't great. Not terrible, but not great.
They were also burdened with an early performance by Michael Fassbender. At the time I'm sure it didn't seem like a burden, and the problem isn't his acting, which is fine. The problem is that we now know him to be a star, and when the camera lingers on him, it screams out "this man is important!" even as he does mundane things. It broke a major plot point very early.