As secure as you feel is neccessary. We dont' know what / who you're storing information about / for so we can't really say. How pissed would your customers be if you leaked their phone numbers?
SQL interjection atttacks
register_globals issues
allowing blank passwords
using easy-to-guess passwords for database
leaving .inc files in www accessible places
leaving password files in www accessible places
relying on IP addresses, HTTP_USER_AGENTs, etc.
using sessions / logins that never ever expire
its nice also sometimes to use sleep() or something similar to lengthen the time it takes to allow a login. Slows down brute force attacks
you might also consider something like:
if ($username_tried_to_login_fourty_times_in_last_ten_minutes)
{
lock_this_account ();
}