Its purpose is to automatically detect, configure, and connect to a network whether wired or wireless such as VPN, DNS, static routes, addresses, etc which is why you'll see
#Configured by NetworkManager in
/etc/resolv.conf, for example. Although it will prefer wired connections, it will pick the best known wireless connection and whichever it deems to be the most reliable. It will also switch over to wired automatically if it's there.
It's not necessary and many (including me) disable it as most would rather manage their own network settings and don't need it done for them. It doesn't hurt to use it if the user is new and doesn't want to manage the network settings just yet but for someone who does, it can be an inconvenience with it's auto-configured settings (such as overriding the DNS server(s)) which is why you can rest assured that most experienced users will add
NM_CONTROLLED = no to
/etc/sysconfig/network-scripts/ifconfig-eth# so that they can do it on their own.
You are fine disabling it if you don't need it which is especially true if you have your own settings that you want to put into place. I'm not saying that NetworkManager is bad or that it completely stops a user from configuring the network to his or her liking but only that it isn't necessary and as its settings can be overridden anyway, it simply isn't needed.