There is a parameter in WP_Query called post_parent. Normally this refers to the ID of the post’s parent, but since its an integer field, pages without a parent have in essence a post_parent of 0.
So, to get all pages that are not child pages of another page, you could use
query_posts( 'post_type=page&post_parent=0' );
or, in array syntax that would be
query_posts( array(
'post_type' => 'page',
'post_parent' => 0 ) );