Hi Sam,
I don't think that an index rebuild will solve your problem permanently, e.g. it can occur again.
The thing is: what processes are accessing the table, e.g. is it from an application, a SSIS package?
Solving DL issues is often a combination of app design and database access / design.
I have a similiar case with a deadlock during a ssis package run.
Long story short: the data flow needs to be adjusted a bit because there's a multicast involved which is the "troublemaker".