query_posts and sub pages?

I’m pretty sure you can use get_pages (http://codex.wordpress.org/Function_Reference/get_pages) function to solve this. It has child_of parameter which does exactly what you wanted.

The only problem is that it returns posts and not set $wp_query, so you can’t use it as loop, but you can always call setup_postdata and then use template tags as in normal posts loop.

<?php
    $mypages = get_pages( array( 'child_of' => <PARENT_PAGE_ID>) );
    foreach( $mypages as $page ):
?>
        <h2><a href="https://wordpress.stackexchange.com/questions/33194/<?php echo get_page_link( $page->ID ); ?>"><?php echo apply_filters('the_title', $page->post_title); ?></a></h2>
        <div class="entry"><?php echo apply_filters( 'the_content', $page->post_content ); ?></div>
<?php endforeach; ?>