There are many reasons why your website could have broken links. Finding them and fixing them could take a long time but luckily there are free services that do it pretty painlessly.
It doesn’t take much to start getting a lot of broken links. As time goes by external links begin to break. If you move pages around or change your URI structure internal links could break. It is important to be proactive and stay on top of it but sometimes you simply miss some. And clicking every single link on all of your pages is simply not an option.
If you do not already have an account create one and add your website. You’re already better off because Google gives you lots of useful feedback about your site and without this account you would have never known it. But that is for another post. It may take a few days for Google to crawl your site. Hint: submit a sitemap and Google should crawl your site within the day. Once the site has been crawl any 404 (missing pages) will appear under Crawl Errors on your Dashboard. Google should be crawling all of your pages unless you specify otherwise so any broken links across your site should be picked up by their crawlers.
Knowing how many broken links you have is great and all but Webmaster Tools only shows the pages where these errors occur. A page could have hundreds of links so to make finding those one or two broken link we turn to W3C Link Checker.
W3C Link Checker
For web design/developer folk you can of course use Firebug/Developer Tools to find broken links on a per page basis as well.