The whole idea of .NET MVC is that.
You have your models to work in your data layer (Entity Framework, nHibernate or any other thing...) which represent your data, hence the simmilarity with your tables. On the other hand, you'll have to define ways to present that data to your users, which is done in views, and to do so, you create your ViewModels. They may look alike but they're not the same.
Take for instance an example where you have a User model, a Group model where every user has a group. Your data models will be User and Group, but your ViewModel to create a user should include a list of the available groups, much like this:
public class RegisterViewModel
{
public string UserName { get; set; }
public string Password { get; set; }
public string PasswordConfirmation { get; set; }
public IEnumerable<Group> AvailableGroups { get; set; }
public int SelectedGroup { get; set; }
}
In one ViewModel you are mixing two models, keep in mind that they can be much more.