Since learning about Custom Post Types in WordPress 3.x I seem to be using them in just about every WordPress build we do.
The code below is what I’ve been using to get register a Custom Post Type, it’s pretty straight forward, now that I know what’s going on with it.
If you want the full run down this post on Justin Tadlock’s web site is definitely the place to start.
Anyhow, if you’re using Thesis, then this code place in your custom_function.php file will get you a new post type, in the example here for Case Studies.
// code to create Custom post type for Case Studies
function create_my_post_types() {
register_post_type( 'Case_Studies',
array(
'labels' => array(
'name' => __( 'Case_Studies' ),
'singular_name' => __( 'Case_Study' ),
'add_new' => __( 'Add New' ),
'add_new_item' => __( 'Add New Case Study' ),
'edit' => __( 'Edit' ),
'edit_item' => __( 'Edit Case Studies' ),
'new_item' => __( 'New Case Study' ),
'view' => __( 'View Case Studies' ),
'view_item' => __( 'View Case Study' ),
'search_items' => __( 'Search Case Studies' ),
'not_found' => __( 'No Case Studies found' ),
'not_found_in_trash' => __( 'No Case Studies found in Trash' )
),
'public' => true,
'show_ui' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'supports' => array( 'title', 'editor','excerpt', 'custom-fields'),
)
);
}
add_action( 'init', 'create_my_post_types' );
When you’ve registered your custom post types, create a new entry with the new post type, then you will need to do one more thing before it will work. You have to visit the Permalinks section of your WordPress admin before the permalinks for your Custom Post Type will be recognised on the front end of your site.
Simply visit the admin page, that’s all and it will start working when you view a post of your custom post type.

Update!
Unless you really have to, I wouldn’t worry about coding these, this plugins does all the hard work, have used it on many sites now and it rocks!
custom-post-type-ui