diff for multiple files
vimdiff 1 2 3 4;
It's highly customisable with loads of features, for example if you want to dump the UI to html;
vimdiff 1 2 3 4 -c TOhtml -c 'w! diff4.html|qa!'
Here's a nice suggestion on stackoverflow. Take a look at the accepted answer about Diffuse software.
As for the output of the comparison to a file, I've just tested it with diffuse-0.4.6, but was unable to discover such feature, so I guess it's a topic for another question...