David Fowler has a new procedure:
Have you ever wanted a quick and easy way to see who was holding (and waiting on) locks on a particular database? Perhaps you’ve got some blocking issues going on and you want to see exactly which rows the row level locks were taken out on?
sp_LockDetails will return some handy information about the locks held on a specific database, including SPID, login, database, lock type and resource.
David includes the script in the post as well.