I can share with you a small overview of blockings in sql 2000. Blocking happens when an object is being locked by a process (say process 100) and before the lock is released another process (Process 101) wants to lock same object, but Process B can not lock the same object because that object is already locked by Process 100.
At this time if look at the result of sp_who2, you will notice that process 101 is locked by process 100. As soon as process 100 is completed or you explicitly kill process 100 it releases the lock, then process 101 will start executing.
There are number of locks like shared lock, exclusive locks, update locks etc. I have just provided a very basic idea of blocking to start with, however, this is big concept in itself not only limited to blockings but also includes locking, deadlocks, various isolation levels etc.
Hope this will help to understand.