Menu link to all posts (all categories included)

If your blog is setted to show last posts on home page, the link you need is just the home page link, that can be inserted using custom link.

If your blog is setted to display a static page as front page, also create a page and set it as “Posts page”, then the link to that page, will be the link for posts.

If you need to change something on how posts are shown, e.g. the number of posts showed, use pre_get_posts action hook with is_home() condition (even if site home page is a static page).

add_action('pre_get_posts','show_all_posts');

function show_all_posts( $query ) {
  if ( ! is_admin() && $query->is_main_query() && is_home() ) {
     $query->set('posts_per_page', -1);
  }
}

Edit

As pointed out in comments, when home page is setted to display last posts, often it is styled differently from normal archives, in that case the solution is create page template.

E.g. create a file named pages-posts.php in the theme root (if the theme is developed by third party better create a child theme).
In this file put simply

<?php
/*
Template Name: Posts Page
*/

get_template_part('index'); // or 'archive' or whatever template you want to use

After that in functions.php add:

add_action('pre_get_posts','show_all_posts');

function show_all_posts( $query ) {
  if ( ! is_admin() && $query->is_main_query() && is_page_template('pages-posts.php') ) {
    $query->set('page', false);
    $query->set('pagename', false);
    $query->is_singular = false;
    $query->is_page = false;
    $query->is_home = true;
    $query->set('post_type', 'post');
    $query->set('posts_per_page', 10);
  }
}

Now you have to create a page in dashboards, assign the page template and use this page to show posts.

It can seems a bad, hard work, but once WordPress as not a specific archive for standard posts only alternative to this is put the query in the pgae template, but in that case you will rune 2 query one to retrieve the page, one for posts, using my code you will rune one query, so for performance is better.

Edit 2

Just yesterday I released a new plugin Clever Rules using that plugin what you ask can be done with a line of code and without adding any additional page.

After you have installed and activated the plugin, create a new file called ‘myrules.php’ in it put:

<?php
/**
 * Plugin Name: My Rules
*/
add_action('plugins_loaded', 'register_my_rules');   
function register_my_rules() {
    if ( function_exists('register_clever_rule') )
        register_clever_rule('/posts')->query('post_type=post')->template('index.php');
}

After that save this file in your plugins folder. Go to dashboard and activate this “My Rules” plugin. You are done, now when you visit the url http://yoursite.com/posts/ you will see all your posts showed using index.php template. Change it if you want.

Please note plugin is in Beta so not fully tested.