Your internal resolver is a query client which may be able to query a number of sources for addresses including:
- Your local hosts file (/etc/hosts on Linux/UNIX)
- DNS
- WINS
- mDNS (Zero Config name service)
Your ISP's DNS servers work like a local database containing the addresses for hosts you and your neighbors have used recently. The DNS server will cache any addresses looked up for a period of time (often several days). They also know how to quickly find the address for names not already cached. Servers of this type are known as recursive DNS servers, and are normally not available to the general Internet.
For services like Google, Facebook, and other high volume sites, it is helpful to use a local server. Your ISPs DNS should have the addresses which are nearby (in network terms). Other DNS servers may provide addresses which are relatively far away, perhaps even continents away.
The root servers only provide servers for TLDs (Top Level Domains) like .com .net, .uk, etc. Like most DNS servers on the Internet, they don't provide recursive name services. As the data they provide is relatively static, it will be cached by recursive name servers that do query them. While the cached data is valid the recursive server will not need to query the root servers for that TLD.
If you get an IP address using DHCP, you usually also get name servers as part of the automatic setup. This is the way most of the computers I know of get their IP address, router, and DNS servers.
Hosts and servers with a fixed IP addresses require the DNS servers to be specified, if used. Many of the servers I have worked with use local DNS servers which are not available to users on the Internet. They usually serve up address for local hosts and servers. Selecting appropriate name servers may be critical for hosts and servers on a private network.
I am aware of a couple of major publicly accessible recursive DNS servers. These are the Google DNS servers and OpenDNs servers. I believe both these servers provide a some protection against malware sites. OpenDNS provides a number of filters which can be applied to restrict access to certain types of sites.