Saving data to a session I'm a bit confused if saving the information to session code below, belongs in the controller action as shown below or should it be part of my Model? 

I would add that I have other controller methods that will read this session value later.

public ActionResult AddFriend(FriendsContext viewModel)
{
    if (!ModelState.IsValid)
    {                
        return View(viewModel);
    }

    // Start - Confused if the code block below belongs in Controller?

    Friend friend = new Friend();
    friend.FirstName = viewModel.FirstName;
    friend.LastName = viewModel.LastName;
    friend.Email = viewModel.UserEmail;            

    httpContext.Session["latest-friend"] = friend;

    // End Confusion

    return RedirectToAction("Home");
}


I thought about adding a static utility class in my Model which does something like below, but it just seems stupid to add 2 lines of code in another file.

public static void SaveLatestFriend(Friend friend, HttpContextBase httpContext)
{
    httpContext.Session["latest-friend"] = friend;
}


public static Friend GetLatestFriend(HttpContextBase httpContext)
{
    return httpContext.Session["latest-friend"] as Friend;
}
This is something I always get confused with as well!!

I would probably think it's fine where it is but if you were considering moving it I might suggest using an interface and injecting that into the controller.  That way it doesn't matter where the latest friend information is persisted and the controller remains separate from this concern.

Although this might be overkill for your situation and example of this in use might be:

public interface IFriendProvider
{
   Friend GetLatest();
   void SaveLatest(Friend friend);
}


Your controller action might then become:

public ActionResult AddFriend(FriendsContext viewModel)
  {
        if (!ModelState.IsValid)
        {                
            return View(viewModel);
        }

        // where _friendProvider has been supplied through the controller constructor
        // using DI  (See Ninject or Unity for example)
        _friendProvider.SaveLatest(new Friend()
        {
           FirstName = viewModel.FirstName;
           LastName = viewModel.LastName;
           Email = viewModel.UserEmail;            
        });         
}


Your implementation of the friendProvider would be something like:

public class SessionFriendProvider : IFriendProvider
{
   private readonly HttpContext __httpContext;

   // or instead of Context maybe the session object itself?
   public SessionFriendProvider(HttpContextBase context)
   {
      __httpContext = context;
   }

   public void SaveLatest(Friend friend)
   {
       _httpContext.Session["latest-friend"] = friend;
   }

   public Friend GetLatest() 
   {
      return _httpContext.Session["latest-friend"] ?? new Friend();
   }
}