Drupal is a content management system and it's primary goal is to provide a web interface to your content, whether it is stories, blogs, photos, or video clips. The content is the main dish; when displayed to the user, it usually takes most of the screen space. You can also serve side dishes with your main dish using blocks, which are usually smaller panes containing related content. Drupal comes with a standard set of pre-manufactured blocks; and you can add as many custom blocks as you want.
So if content is your main dish (i.e. the node itself) and the blocks are your side dishes, menus are your knives and your forks. They are lists of links that provide navigation relevant to the page. The official documentation on menus on drupal.org covers the basic functionality very well; the only thing that I would like to add to that is a discussion of custom menus displayed as blocks.
Drupal 7 ships with 4 menus: Main menu, Management, Navigation, and User menu. The official documentation describes adding new links to existing menus. But you can also add brand new menus, i.e. have more than the 4 default menus.
Once a custom menu is created and populated with links, you can insert it into your pages. Each custom menu automatically generates a new custom block. This might sound confusing - didn't we just say blocks and menus were different? If you think about it, you could say that menus are a type of a block. Blocks are regions of a page, and menus are just a special type of a region designed to display lists of links. So it makes sense that custom menus are treated as custom blocks. You control their location (the region in your site's theme where they appear - left sidebar, right sidebar, and so on) and visibility (restricting the menu display by page address or by content type. This functionality is not unique to menu blocks, but is common to all blocks. This older article on blocks deals with visibility rules quite extensively.