SQL Server provides both data types to store character information. Basically the two data types are identical in how you would work with them in your database or in your application.
The main difference is that nvarchar is used to store unicode data, which is used to store multilingual data in your database tables. Other languages have an extended set of character codes that need to be saved and this data type allows for this extension.
If you will not be working with multilingual data you should use the varchar datatype instead. The main reason for this is that nvarchar uses twice as much space as varchar, again because of the need to store the extended character codes for other languages