Display and edit user info When a user logs in, I'd like him to see his profile info (name, address) with a link to a form to edit that info.
I thought this should be a trivial task, because it is something needed on almost every site that allows users to register. Yet, I failed to get anywhere after a couple of hours of trying and searching.  

What I have now is a view (using the views module) that displays a list of all users where each one has a link to the edit page. But I only want a user to see and edit his own stuff ...
You may put template for user page like  user-profile.tpl.php
This template is used when viewing a registered member's profile page, 

e.g., example.com/user/123. 123 being the users ID.

Available variables:

$user_profile: An array of profile items. Use render() to print them.
Field variables: for each field instance attached to the user a corresponding variable is defined; e.g., $user->field_example has a variable $field_example defined. When needing to access a field's raw values, developers/themers are strongly encouraged to use these variables. Otherwise they will have to explicitly specify the desired field language, e.g. $user->field_example['en'], thus overriding any language negotiation rule that was previously applied.

OR 

use hook_menu_link_alter

function hook_menu_link_alter(&amp;$item) {
  // Make all new admin links hidden (a.k.a disabled).
  if (strpos($item['link_path'], 'admin') === 0 &amp;&amp; empty($item['mlid'])) {
    $item['hidden'] = 1;
  }
  // Flag a link to be altered by hook_translated_menu_link_alter().
  if ($item['link_path'] == 'devel/cache/clear') {
    $item['options']['alter'] = TRUE;
  }
  // Flag a link to be altered by hook_translated_menu_link_alter(), but only
  // if it is derived from a menu router item; i.e., do not alter a custom
  // menu link pointing to the same path that has been created by a user.
  if ($item['link_path'] == 'user' &amp;&amp; $item['module'] == 'system') {
    $item['options']['alter'] = TRUE;
  }
}