Pulling in featured image into default recent posts widget

the_post_thumbnail() will show the thumbnail of the current post in the Loop. Since you are using a custom foreach() loop instead of starting your own WordPress Loop, you can use this instead to specify which post you want:

<?php echo get_the_post_thumbnail( $recent_post->ID ); ?>