Web parts represent blocks of content that provide a combination of content and functionality. They are the basic building blocks of portal engine page templates. All web parts are registered as objects in the system and may be configured in various ways. More information can be found in the Development -> Web parts -> Web part management topic in the Developer's Guide.
Using existing web parts, users with the appropriate permissions (Design web site from the Module -> Design permission matrix) can build or modify the structure of pages directly from a browser through the CMS Desk -> Content -> Edit -> Design interface. Individual web parts added onto a specific page are called web part instances. Each instance must be inserted into a specific web part zone, as defined by the layout of the given page's template.
From a developer's point of view, a web part is a user control (.ascx file) that inherits from an appropriate base class. You can easily create your own web parts according to the instructions in the Developing web parts topic in the same chapter of the Developer's Guide.
A default Kentico CMS installation contains many built-in web parts. You can find complete documentation on all these web parts and their configuration options in the Kentico CMS Web Parts reference. In some cases however, you may find it necessary to change the behavior, design or functionality of one of them. The Modifying web parts sub-chapter covers several approaches how this can be done.
Also of interest may be Widgets, which work in a way similar to web parts. They are however intended for various types of users without website design permissions (such as content editors) and may also be used to allow personalization by users.