VLAN Trunk Protocol was created by Cisco Systems to administrate network traffic over designated VLAN trunk links (links that carry traffic for more than one VLAN). With VTP, a system administrator can add, delete, and otherwise modify VLANs on a network. These changes are then propogated to the network switches.
In addition to simple administration, VTP also enables VLANs to be trunked between networks of multiple types (Ethernet, FDDI, etc), as well as accurate tracking of VLAN traffic.
When implementing VTP on a network, a VTP server is used to hand out VLAN information to switches. VTP information is only shared within a specified domain. A switch can only be a member of one of these domains.
Switches can be configured to respond to VTP packets in one of three ways:

Server mode (default for Cisco Catalyst switches) initializes the propogation of VTP information to all clients in the domain.

Client mode is fairly self-explanatory. Switches operating in this mode can send and recieve VTP updates from servers, but cannot make changes to the VLAN information themselves.

Transparent mode: Switches in this mode are not active in the VTP domain (they do not update their own data with incoming information). Instead, they simply forward VLAN information out of all designated trunk links. Transparent switches can add and delete VLANs from their database, as the information is not shared with other clients, but, of course, these changes are significant only locally.