OK, here's a solution that really seems to work.
First, this problem seems to affect those of us who, at one time or another, jailbroke our iPhones. (C'mon, admit it.) If you truly never jailbroke your phone, you may be experiencing a different problem with a different solution.
So here's what you need to do:
BE SURE TO SYNC AND BACK UP YOUR PHONE (with iTunes) BEFORE YOU PROCEED FURTHER.
1. Put your phone into DFU mode (do a google search to find the details on how to do this, it's easy.)
2. Launch iTunes, if it wasn't already running, connect your phone to your computer via USB, then when iTunes ask if you want to restore your phone to factory settings, choose that option.
3. After the restore to factory settings is complete, test the voicemail, your messages should appear (you may need to enter your voicemail password.)
4. Assuming that works, you can now use iTunes to restore your phone from the backup you made before starting this procedure. When that long process is done, you should be back to normal.
And remember all of this the next time you think about jailbreaking, lol...