It's, as you said, a forkbomb. What it does is define a function, then call it. The function is called :.
Let's name it forkbomb so we can better see what's going on:
forkbomb(){ forkbomb|forkbomb& };forkbomb
As you can see, and probably guess from your programming experience, the first part is the function definition (forkbomb(){ ... }), and the very last : is where the function gets called (the ; just separates statements in Bash).
Now, what does this function do? If you're familiar with Bash, you'll know that the | character pipes the standard output of one command/program to the standard input of another. So basically, :|: starts up two instances of the function (this is where it "forks").
And then the magic: the & puts those commands in the background, allowing the original function to return, while each instance forks 'til the cows come home in the background, thus using up all your resources and taking down the system (unless it has limits imposed on it).
sudo rm -rf /. That command deletes all your files; this one just clogs your machine's resources until it becomes unusable and you have to restart. – jtbandes Jul 23 '10 at 4:56sudo rm -rf /is more dangerous but I've seen people execute this on remote servers "just wanted to see what it did" where you have a hard time restarting without access to a control panel. – Josh K Jul 23 '10 at 17:03