It was originally intended to be a sort of standard cross-platform library, thus enabling it to be linked (using the usual Unix library form) by just saying "-liberty". The contents consisted of a variety of useful functions. However, the development of standards for C and POSIX took away some of the impetus for this, and libiberty came to be used primarily as a support library for the GNU toolchain.
One important piece of libiberty functionality is a demangler for C++, included so that it is available to both binutils and GDB.
The name is a pun or word play on the word "liberty". On Unix-likeoperating systems, library files are always named "lib" + "the name of the library." But when they are linked to with a C compiler command (cc, gcc, etc.), the command line flag specifying the library is -l followed by the part of the library name after "lib". In libiberty's case it therefore becomes -liberty.