NPC means Non-Personal Character, or Non-Player Character, that is, a character that is controlled by code, not by someone else playing the game. They usually look a little different compared to the player characters. You need to click on them to talk to them.
Some NPCs buy and sell items, others give you quests, some take you to new places and back again, others give you clues, some heal you, others change something about your character, and some just say something to make you laugh.
Below is a list of different NPC categories. By clicking on one of them, you'll see which NPCs are in each.