Yes, you can use sp_lock.
I tend to find graphical tools easier to work with. In EM (2000), you can look at locks under "Current Activity" and see exactly which SPIDs are locking/blocking and the corresponding queries. However, it is real-time only.
For a historical perspective, I use Quest's Performance Analysis, which is a great overall tool for monitoring a database.
Then of course, once you figure out which queries are the culprits, you need to look into how to tune those queries/applications that are creating the locks.
Good luck.