1) If they want in bad enough, they'll get in.
2) Your example is widley used, and commonly approved.
For someone who wants to "break in", it does not matter if you MD5 it 1,000,000 times, if they grind the password using your form input, it will do the same action and have the same outcome.
If a user has a password of "apples", they will get in via brute force no matter how many times you MD5, (and BASE64, SEED ENCRYPT, etc, etc) it.
Reverse grinding the passwords from the table might be a tiny bit harder, but then again, if they have access to the table, it does not really matter does it.
What you do next is more important IMO, that is, what you do once you know the user is ok to sign on.