wordpress custom field output after the_content

$content .= sprintf(...); // will add the button right after content.

In your example

// Add button to the end of each page
$content = sprintf(
    '<img class="button-link" src="%s/images/button.png" alt="Link" title=""/>%s',
    get_bloginfo( 'stylesheet_directory' ),
    $content
);

change it to

$lnk=get_bloginfo( 'stylesheet_directory' );
$content .= '<img class="button-link" src=$lnk."/images/button.png" alt="Link" title=""/>';

to add new content/button right after content. Also you need to add some css style for that button to be placed according to your desired need within/after content.

I think you can easily edit the index.php and can add the code you've provided with your question right after content.

Update:

add_filter( 'the_content', 'my_the_content_filter', 20 );
function my_the_content_filter( $content ) {
    if ( is_single() )
    {
        global $post;
        $imgLnk=get_bloginfo( 'stylesheet_directory' );
        $pgLnk=get_post_meta($post->ID, 'Button', true);
        $content .= '<a href="'.$pgLnk.'"><img class="button-link" src=$lnk."/images/button.png" alt="Link" title=""/></a>';
    }
    return $content;
}

Just a minor modification to the above code. The previous 'img' attribute was outputting an 'image not found' icon (the question mark) on Safari. I simply replaced the 'img' with 'span' and added the image as background in CSS.

add_filter( 'the_content', 'my_the_content_filter', 0 );
function my_the_content_filter( $content ) {
    if ( is_single() )
    {
        global $post;
        $pgLnk=get_post_meta($post->ID, 'Button', true);
        $content .= '<div id="button-link"><a href="'.$pgLnk.'" target="_blank"><span class="button-link"></span></a></div>';
    }
    return $content;
}