Documentation on the different pref types can be found in horde/config/prefs.php.dist. Note: these types define how the preference is handled solely in the Options User Interface (UI). It does not define how this data is stored in the preferences backend.
Managing options is handled exclusively by the Horde_Core_Prefs_Ui class. User interface within Horde is handled exclusively by the horde/services/prefs.php script.
For most preferences, the default types defined by the Horde_Core_Prefs_Ui class should be sufficient. However, there may be instances where a more advanced user interface is needed, or further processing needs to be done on the input before saving to the preferences backend.
Several Application calls are available to allow an application to define these handlers. See http://git.horde.org/co.php/framework/Core/lib/Horde/Registry/Application.php for details on these special functions. [TODO: better description here once API has stabilized]