Several years ago, I created my own Contact Manager application. I did it in Ruby on Rails because it was quick. I had it published online at a semi-public URL, so I could access it from anywhere. It was open to public registration, but I was the only one who ever created an account on it. So basically it was a single-user custom app that had exactly the features I wanted it to.
It was perfect. It had tagging, and you could add as many phone numbers, e-mail addresses, or postal addresses as you wanted. It would keep track of accounts like Livejournal, AIM and MSN Messenger. I could even keep track of relatives & roommates sharing the same address, and each contact had three dates associated with it: how long I'd known them, how old their contact information was, and how long it had been since we talked.