When you set up a static page as home page, you can set up also a page for the blog archive. If you do that, you don’t need to alter the WP_Query in the blog page template, you only need to work with The loop like in a archive template file. When the page for the blog archive is requested, WordPress will make the correct query for the blog archive.
To make the monthly/category archive use a different template file than the standard, you can use the template_include filter and the functions is_category() and is_date():
add_filter( 'template_include', 'inlcude_archive_page_template' );
function inlcude_archive_page_template( $template ) {
if ( is_category() || is_date() ) {
$new_template = locate_template( array( 'the-archive-page-template.php' ) );
if ( '' != $new_template ) {
return $new_template ;
}
}
return $template;
}