Nofollow is a property that you can add to a link. It goes like this:
<a href="http://leonti.us.to/" rel="nofollow">a nofollow link</a> (notice the rel=“nofollow” clause). Basically it tells search engines not to take the link into consideration when calculating the quality of a page (for Google, it is PageRank). Usually it is put in blog comments, as links in comments are not really from the website owner but from unknown commenters.
Traditionally, nofollow specification was invented to significantly decrease the effectiveness of spammy comments; they won’t get much benefit if all comments are nofollow-ed.
So why don’t we put nofollow in every outbound links, so that our PageRank won’t ever ‘leak’ to other sites? The answer varies. Some said that it is not effective at all; comment spams do not decrease in sites that have nofollow links. A better reason might be fairness to legitimate comments. It is just not fair that real commenters don’t get what they deserve, just because there are spammers floating around.
Also, it is only natural that pages having relevant outbound links are better than pages not having them. Most people will like the former more. So having lots of nofollows can delude search engines in a wrong way which can actually discredit the site itself.
Having nofollow also unmotivates commenters. I personally am more willing to comment and give relevant links if I know that I can get a small PageRank benefit from it, rather than simply enriching a particular page and not gaining anything in return!
If you want to read more, there is a related post and how to remove nofollow from various blogging platform including WordPress, and the new Blogger. Search Engine Journal also managed to compile 13 reasons why nofollow tags suck. And take a look of what Dougal Campbell, one of WordPress developers said about this.
UPDATE: We even don’t know if search engines really treat nofollow exactly the same as what we expect.