There are all kinds of geocoding services you can use, but you'll most likely have to pay. Check out Cloudmate. They might work out for your situation. If this is a business venture it might be better to spend a little bit of money and make sure you get good data.
30,000 records wont take that long at all. If there's no rate limit it should be able to be done in 10 - 20 minutes. I've geocoded 2000 records one page at a time(100 on each page) and it took 5 minutes.
A while back I built a locations administration interface. It's not finished and the code is not the greatest but it may give you a starting point. It uses google to geocode but can easily be swapped out for any other service.