npm is used for seamless installation of packages (modules) that were created and shared by the other developers and can be reused in your application
npm is used for the management of packages (you can search, install, update, publish packages)
npm is used for simple management of dependencies - when you use many 3rd party packages in your application, it is not easy to keep track of them, update them and manage their versions - npm does this for you
You use npm when you don't want to do all things mentioned above manually. You could definitely do it, but it would be too time consuming and error prone. npm simplifies the process a lot.
When you use a 3rd party package, you usually need to:
update it from time to time
patch the bugs and security issues
Imagine your application uses 10 different 3rd party packages (modules). Without npm, you would need to manage every single package manualy and that would be huge amount of work.