Is there a way to reorder a collection of posts to read from top (oldest) to bottom (newest)?

You can reverse the order of the main query via the pre_get_posts action:

function wpa85668_ascending_order( $query ) {
    if ( $query->is_home() && $query->is_main_query() )
        $query->set( 'order', 'ASC' );
}
add_action( 'pre_get_posts', 'wpa85668_ascending_order' );

If it’s a custom query, just set the order query var to ASC in the arguments passed to the query.