Syntax
diff [OPTION]... FILES
I can't imagine a world without the 'diff' utility. In fact, this is where the commandline is superior to GUIs in my opnion. Applications like "git" take full advantage of the power of 'diff'.
In many cases these days, most developers utilize version control from the beginning. But, imagine you are wanting to see the difference between two versions of the same code. This is quite common when working with legacy software.
In our example, say I have two versions of a simple file. We'll call them a.c and b.c. Here's a.c:

Now, in version "b" of the same application, there are a few more lines of code added:
True, you could go down the file line by line. But, on a file that has several thousand lines, having a utility would be great.
So, we can do the following:
[johnny@starr ~/test/diff]$ diff -c a.c b.c
*** a.c Fri Jan 24 16:14:15 2014
--- b.c Fri Jan 24 16:16:35 2014
***************
*** 1,6 ****
--- 1,10 ----
#include <stdio.h>
+ #include <stdlib.h>
int main(void) {
printf("Testing 123.\n");
+ while (1) {
+ printf("endless loop.\n");
+ }
return 0;
}
[johnny@starr ~/test/diff]$
At this point, we can see that the '+' symbol is used to define that b.c has added these lines. If we would have removed lines, you would see the '-' symbol.
Notice that I used the '-c' flag, this is helpful in displaying diff in "context" format, giving us the symbols.
You can customize diff with tons of flags. Check out 'man diff' to find out more. There's also an application floating around called 'colordiff' which is a wrapper for diff that outputs in color. Not required of course, but can be helpful in general.

