Theming a content type
It depends on what you want/need. Not only for content types, for theming generally; my suggestions:


For little/cosmetic changes(font, color etc.) and basic layout settings you can use node-type-yourcontenttypename class and style with CSS.
For moderate+ structural and visual needs you can use Views, Context, Panels  etc. alone or combined(and CSS of course).
For the things you can't achieve without dirtying your hands; you can create special template files for pages, nodes, block, views etc.
For the things you can't achieve with above ways; you can hack core, module, theme files. But this would be last and worst way to go. 


You can do lot of things with 1, most of things with 1+2 and almost everything with 1+2+3.