Starting in WordPress version 3.5, a new multimedia uploader is available to developers! Wohooo! This allows users to pick or upload an image file and then have that object data returned to your javascript for use any way you like.
Make sure to call wp_enqueue_media() from within the admin_enqueue_scripts action hook. This magically adds all dependencies to the page. Includes sugar, spice, and everything nice.
add_action('admin_enqueue_scripts', my_enqueue_scripts);