As Sven said, operating your own DNS server shouldn't really have appreciable overhead (In fact you'll probably find slightly less external network traffic if you also set the DNS server up to be a caching resolver -- Looking up www.google.com
can be served from the cache for as long as the www.google.com TTL says the entry is valid.
In short, drawbacks: Almost none (you have a DNS server to manage now, but that's not really hard).
Benefits: Almost infinite (using hostnames instead of IPs? SO much better!)
Software-wise I would recommend BIND, which should come installed by default on CentOS (and if not, it's definitely available in the package repo). It is the reference implementation of a DNS server, superbly documented and well understood by pretty much everyone.
I would also give you my standard recommendation for anyone setting up DNS anywhere: Buy and read a copy of DNS and BIND. Even if you're not using BIND the chapters on DNS are important to read and understand.
This book will help keep you from making disruptive mistakes, and the knowledge you gain by reading it will help you fix any mistakes you do make quickly.