Currently I have a custom post type and I would like to have some different version of it based on user input - so for example when creating a post the user can select if the post is Featured or Free and then there would be an if-else statement that would display different image if Featured and different if Free in the actual post. Can anyone point me to the right direction? Any advice greatly appreciated.
This sounds quite a bit like the Advanced Custom Fields flexible content field. Basically it works by letting you setup a number of different templates for how you might want to create/display your page. Then when you are in the editor, you pick which template you want to use. More info here: http://www.advancedcustomfields.com/resources/field-types/flexible-content/
You can use Custom Fields or Custom Taxonomies to do this.
The easiest way is using Advanced Custom Fields plugin.