Please see 4. below.
To move your content you need to create an XML export file of your content. It will not include the theme as they cannot be exported. See 3 below.
Note: Premium Themes that are licensed for WordPress.com use only cannot be transferred to self-hosted WordPress.org sites. http://en.support.wordpress.com/themes/premium-themes/
Also note that if you have purchased a premium theme you will have to contact the theme designer and request a wordpress.org version of it.
WordPress.com and WordPress.org are completely separate.
1. Hire a web host http://wordpress.org/hosting/
2. Set up a WordPress.org install and equip it with a theme and plugins.
3. Export your content out of your WordPress.com blog http://en.support.wordpress.com/export/ and import it into the install.
4. Purchase a site redirect upgrade from wordpress.com
http://en.support.wordpress.com/site-redirect/ or if you have domain mapping then update the nameservers http://en.support.wordpress.com/domains/domain-management/
5. Transfer subscribers and stats. See http://en.support.wordpress.com/moving-a-blog/moving-your-subscribers/
6. Set your wordpress.com blog visibility to private. To change blog visibility to private go to > Settings > Reading scroll to Blog Visibility and choose option 3 . See the guide here http://en.support.wordpress.com/settings/privacy-settings/
Alternatively you can purchase a Guided Transfer and Staff will do the move and set up for you http://en.support.wordpress.com/guided-transfer/