You can set a page layout for a CMS page through the «Design» → «Layout» option on the CMS page’s backend screen:

You can define a custom page layout through a layouts.xml file.
Examples of the standard layouts.xml files:
Each page layout contains its definition in a separate file inside a page_layouts folder.