I can give you guys some hints because I don't have time to go into the full explanation but basically you want to take a look at tpl_product_info_display.php located in includes/templates/YOUR_TEMPLATE/templates
If you scroll through the code you'll find this section:
Code:
/**
* display the main product image
*/
require($template->get_template_dir('/tpl_modules_main_product_image.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_main_product_image.php'); ?>
<?php
}
?>
<!--eof Main Product Image-->
<!--bof Product Name-->
<h1 id="productName" class="productGeneral"><?php echo $products_name; ?></h1>
<!--eof Product Name-->
<!--bof free ship icon -->
<?php if(zen_get_product_is_always_free_shipping($products_id_current)) { ?>
<div id="freeShippingIcon"><?php echo TEXT_PRODUCT_FREE_SHIPPING_ICON; ?></div>
<?php } ?>
<!--eof free ship icon -->
<!--bof Product description -->
<?php if ($products_description != '') { ?>
<div id="productDescription" class="productGeneral biggerText"><?php echo stripslashes($products_description); ?></div>
<?php } ?>
<!--eof Product description -->
<br class="clearBoth" />
You'll probably see some other stuff in the code that looks familiar too. Both the product image and description are wrapped in divs (you can see this by viewing the source on your product page). You can try rearranging the code above to have description come before the image but you may also have to edit the stylesheet and setup some styles for the divs that the content is wrapped in. Try the float and position properties. In CSS those are used for positioning elements on a page.
Thats all I can do for now... Gotta get back to work 
- Jonah