Drupal core and contrib modules define theme functions. These theme functions can be defined by themes as well.
hook_theme() implementations is where all the information exists. Theme functions are written as hook_foo() or hook_fooxyz(), but we should never call a theme function directly. By calling it directly we will lose the benefits of the Drupal theming layer such as overriding, suggestions, etc.
Example on how to call theme_image() the right way:
Right way:
print theme('image', array('path' => 'image/path/image.png', 'alt' => 'New image'));
Wrong way:
print theme_image(array('path' => 'image/path/image.png', 'alt' => 'New image'));
Further information and documentation can be found at https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme/7.