In addition to the usual architecture diagrams and documentation, I've taken to creating a small Knowledge Base (ours can be partitioned, so I create one for the particular project). Then I walk through and put all the common issues I've come across, or gotchas that I can think of in this Knowledge Base. Typically we start hand over a bit earlier than the cut-over date and any questions that the support team have, I can put these into the KB and then have the support team use that. Whatever it can't answer, I will and then update the KB for them. It can be time consuming but I think it helps greatly as people can simply 'google' the answer for a particular error or question about the system. It depends how nice you want to be to the people you are handing the project over to I suppose :) I also do this when I have been handed a system to support and have no supporting documentation. Creating a KB and putting new articles in any time I encounter a problem helps as I am forced to dive deeper into an issue and fully understand how it works.