There are several reasons why the trash bin in OS X will not empty, or will not otherwise work as expected. Often this occurs because of access permission faults with the hidden trash folder that OS X uses as an intermediary for storing trashed files before they are finally deletes, but at other times it occurs from built-in restrictions like having locked files in the trash.
If you decide to empty the trash in OS X, and end up getting an error or otherwise not seeing the contents delete, first try holding the Option key when emptying, which will invoke the OS X Force Empty feature, bypassing things like file locks and removing any file you have in the Trash.
This should in most cases empty the trash completely, but if you are experiencing more severe problems, the trash may still remain full, or won't allow you to add items to it (they may be deleted immediately). Note that there is no trash support for networked volumes, so deleting items from them will result in their immediate removal.
However, if such behavior happens for files on a locally attached drive, you can go about fixing the issue by locating and removing the hidden trash folders (one in your account, and the other at the root of each locally mounted volume on the system), so the system will rebuild it with proper access permissions the next time you place an item in the trash.
There are two ways to remove this folder. The first is to use the Terminal (in the Applications > Utilities folder), which can be done by running the following two commands. These can be copied and pasted, one line at a time, to the Terminal, but since they recursively target specific folders, be sure to use this exact syntax to avoid any problems:
sudo rm -rf ~/.Trash
sudo rm -rf /Volumes/*/.Trashes
These two commands will be the quickest way to clear and rebuild the trash folders on your Mac, provided you do not have any third-party tools; however, some may be intimidated by the Terminal and wish to use the a graphical interface. Unfortunately, attempting to remove the Trash folders via the Finder cannot be done. Even though you can reveal them in the Finder, attempting to delete the ".Trashes" folders at the root of your hard drives will result in an error, and deleting the one in your home folder will attempt to recursively move it into itself, and ultimately get you nowhere.
If you wish to avoid using the Terminal, your best bet is to use a third-party utility, such as TrashIt!, which will invoke similar functions to clear and rebuild the Trash folders, without you needing to type or copy any commands.