SQL Server subqueries - where in vs where exists

Back in January there was a newsgroup discussion about whether WHERE IN or WHERE EXISTS is a better choice when using a subquery. And that brings up a few other questions, like the role of the cache in testing and the danger of using NOT in WHERE clauses.