- work well with longer files and long lines (i don't know why many of them are very slow on larger files)
- have line wrap option (quite unusual it seems)
- have diff ignoring whitespaces (you would be surprised that not all diff guis support this)
- the best would be to use the same algo that "git diff" does
- if not then any other that works on character-level.
Of course you may use the vanilla git diff, which is really great (even outside of git repositories), but it is not as handy as GUI sometimes.
The closest GUI was meld, but it's not perfect either... macvim with some diff plugin was also good, but not perfect.