I haven't used a 3rd party tool recently... I hear LinkScan is OK.
You can look at the IIS/SP logs > status column. This will tell you what 404's have been returned.
And I believe there's a way to use the MS Search Crawler log too, filter by "The object was not found" or create a new filter
http://msdn.microsoft.com/en-us/library/microsoft.office.server.search.administration.crawllogfilters_members.aspx