Usually, the deadlock trace in the errorlog has more information. You should see all processes, and also a resource list. And, yes, client hostname and application name are usually included. At least in more modern versions. You should also see the commands submitted and the execution stack.
The best way to capture deadlocks is the system_health session, but this session is not available on SQL 2008. I think in your case the best is to set up a server-side trace that captures the event Lock:DeadlockGraph. Just don't look at the graphical representation that Profiler shows, because that information dumbed down and misses important important information. For instance, the fact that these deadlocks occur inside a transaction. (So you need to account for previous statements as well.)