Try Access
In regards to housekeeping and keeping up to date with what you've got, I've been using Microsoft Access with great success (you could use any similar db app or OpenOffice's db program, which is free). I use it as an offline tool only, so it's not meant to track names, just to housekeep and record.
I've set up a lot of fields including Domain Name, Registrar, Renewal Month Due, Extension, Category, Price Paid, Price to Renew, If Parked, Rating etc.
I can then do a sort on a field. So for instance if I want to now what domains I've got registered with a particular registrar, I sort on Registrar. If I want to know what names are due for renewal next month I sort on Renewal Month Due. (It's worth setting it up for this alone.) If I want to know what .NET names I've got I sort on Extenson. If I want to know what "solar" names I've got I do a sort on category. And so on.
It works well and you can stay on top of your portfolio quite easily. You have to be displined though in entering all the required information for each name you buy, but that's a small time constraint when you think of how much control this gives you over managing your portfolio.
Cheers