How to display blog posts on a dedicated page?

Setting your permalinks as /blog/%postname%/ will solve your structure problem.

In your theme, drop in a home.php file which redirects the user to /blog/ and you can set the blog to appear on a page with slug blog as the blog in your Settings > Reading

Regarding the menu, you would have to take a look how your theme works. If its using WP 3.0 menus, then you can easily change them in the dashboard itself else if its calling wp_list_pages(), then you need to use the exclude parameter of the function to exclude a particular page from showing. http://codex.wordpress.org/Function_Reference/wp_list_pages