A good article on trouble-shooting deadlocks
Mitch Wheat pointed out a good article on his blog recently on how to troubleshoot deadlocks, written by Microsoft PSS escalation engineer Bart Duncan.
This article is definitely worth a read, but two observations I'd make about this article are:
(a) I'd perform step 7 first, as query inefficiencies should always be inspected when analysing deadlock scenarios & are most likely to fix the problem if identified. Simply using the DTA as Bart suggests leaves you having learned little from the experience if it does manage to solve the problem
(b) I think Barrt is incorrect in point 8 by saying that -T1204 only reports on the two closing statements. I have seen many deadlock graphs from this trace event that showed more than two contributing nodes.. afaik, -T1204 is a concise report on ALL nodes in a deadlock.
Other than these relatively minor points this is an excellent article, covering all the major steps you need to follow to identify the cause of deadlocks & resolve them.