Require a featured image to publish post

You can do something like this with the hook pre_post_update :

function wpse_108013_mandatory_featured_image() {
 if(!has_post_thumbnail()) { // here you check if there's a featured image
      wp_die( 'Featured image must always be set !' ); // there is no featured image
 } 
}
add_action( 'pre_post_update', 'wpse_108013_mandatory_featured_image' );