The reason why David Tennant is so good is because he is extremely versatile. He can play any role, do any accent, comedy, serious drama, rom-coms, sci-fi, Shakespeare, children's TV, good guys, villains, absolutely anything really, and always make it seem convincing. He has to be the one of the least type cast actors ever.
Fright Night was great, and showed that he can do mad over the top roles just as much as the more serious subtle ones.
I have never seen him put in a poor performance in anything, even if the script itself wasn't up to much.
Obviously, because he is very good looking he does attract some fans who like him for that reason alone, and I think that's why he gets such harsh criticism from some people on these forums.