Dealing with deadlocks is allways different on each case.
I recommend you to strat to analyze the execution plan of the querys involved.
Usually, a change on the select statement, tunning or adding some indexes will solve the most of the cases.
For example, if you detect an ugly sentence like "select * from TABLE" is the first thing you have to change. Or if your index fragmentation is high, or the table statistics are out of date, you need to update them.
At last, but not the least, if you see on the execution plan, a index scan instead of index seek, you can identify if adding some index will help on the query.
Hope this helps.