in 2.0dev each page is described by "general page type" (aka "layout") and "pagetype".
The "layout" is used to select the layout file such as 'home', 'form', 'course'. The layout contains information how many areas are available for blocks.
The "pagetype" is usually derived from script name and path and is used mainly in CSS selectors. Blocks may also specify compatible page types.
I 2.0dev the name general type is confusing and should be replaced by "layout" which imo describes it much better.