Tibor Karaszi, a SQL Server MVP from Sweden, has some great on-line resources. One of his most popular articles is about shrinking SQL Server files. He's recently added and re-arranged a little bit in his article at http://www.karaszi.com/SQLServer/info_dont_shrink.asp.
The article is a sort of FAQ on shrinking database files. His article not only talks about the disadvantages with shrinking, but also why log files doen't shrink (one of the classic question out there about shrinking files).
A couple examples of Tibor's wisdom:
1. You might have to do backup log and shrink several times in order to get the file size down. He explains why this might be the case.
2. You may want to cut down number of VLFs, and how to do it.
3. And for further reading, you may want to review the links about log shrinking under the section that talks about log shrinking, instead of a special reference section which appears deep into the article.