There are two very different facets to internal linking. The first is actually Information Architecture or "IA" - and this is where so many sites of all sizes fall apart. The entire subject is barely known, despite being a discipline that even predates the web.
For resources, there's a great O'Reilly book about Information Architecture (now in its 3rd edition) and three good threads in our HTML Forum:
Information Architecture for the Small Site - 1 [webmasterworld.com]
Information Architecture for the Small Site - 2 [webmasterworld.com]
Putting Information Architecture into Practice [webmasterworld.com]
If your site has a good Information Architecture, it will have a good menu (that's internal linking). The problem is that Google created "link mania" over the past decade and people are sometimes thinking about SEO more than their actual visitors.
----
The second facet of internal linking is also visitor-centric: placing links in the content area of specific pages to help visitors find related information. If you don't care about visitors finding a page, then you shouldn't care about Google indexing it either. In fact, you probably shouldn't be publishing it, eh? So make sure visitors can find pages, cleanly and clearly, and monitored your logs and analytics to see where the squeaky spots are.
No, I'm not drunk on Google Kool-Aid. Success really is about building your websites for visitors, first and foremost. Effective internal linking follows quite naturally from that orientation - and so does search engine success. Yes, there are also some other things you want to keep straight for SEO, but internal linking is all about visitors.