diffchar gave excellent results when I used it at first:
http://www.vim.org/scripts/script.php?script_id=4932
However, after making a couple of minor edits and using :diffupdate the diffs were wrong. I forget exactly what the problem was, but I disabled the plugin when I missed seeing diffs that were not highlighted.
Fixing differences-within-a-line is badly needed, but a proper fix requires also fixing the problem that Vim cannot scroll very long lines. Diffs in a line are most needed when lines are very long (as in a paragraph of text), but such a line can only be displayed from its physical start and that prevents seeing diffs near the end of the long physical line.
I'm hoping someone will take up the suggestions mentioned in the following, and at the thread it links to:
http://vim.wikia.com/wiki/Vim_contribution_Ideas
John