Daniel Radcliffe in Prisoner of Azkaban was about as close as the movies got to an accurate portrayal of book Harry, but let's be honest: We're all still annoyed about the green eyes thing.
Rupert Grint was a pretty convincing Ron, but he didn't exactly live up to the constant references to Ron's freckly face and long nose in the books.
Emma Watson lost Hermione's trademark bushy hair in Prisoner of Azkaban, and it all went kind of downhill from there. She also never had Hermione's "large front teeth", but Hermione got rid of those in Goblet of Fire anyway, so she can be forgiven.
While Richard Griffiths was ~basically~ the perfect Uncle Vernon, Harry Melling and Fiona Shaw both lacked the blonde hair that JKR mentions pretty often in the books.
Evanna Lynch was perfect for Luna personality-wise, but her platinum-blonde hair didn't quite fit the description of Luna's "dirty blonde".
Ralph Fiennes was already pretty terrifying as Lord Voldemort, but he would have been even scarier if he had had book-Voldemort's "livid scarlet eyes".
And finally, there's no arguing against it: Richard Harris literally was Dumbledore.