The king of U.S. single address geocodes is Geocoder.us. It’s been around since 2004 and still does a great job returning fairly accurate coordinate pairs for non-commercial use. Batch geocoding is available starting at 20,000 addresses for $50.
The authors recommend a comma between the city and state and a ZIP Code if available for best results. To ensure respectful use, requests are limited to one every 15 seconds, per IP address.
For more details on using the code (open source), the data it creates or its “guts” see the FAQ.