Get last child of given page by ID

WP_Query defaults to getting posts, not pages.

From the above reference page:

Display content based on post and page parameters. Remember that default post_type is only set to display posts but not pages.

This code:

// WP_Query arguments
$args = array(
    'post_parent'            => '4117',
    'post_type'              => 'page',
    'posts_per_page'         => '1',
    'order'                  => 'DESC',
    'orderby'                => 'menu_order',
);

// The Query
$query = new WP_Query( $args );
$posts = $query->posts;
foreach ( $posts as $post ) {
    echo $post->post_title;
}

…should do what you want.