(I have no affiliation with them, apart from being a happy user.)
Private, I use a simple system where I have a 'master' password, which I augment with letters and numbers based on the domain name of the service. For example (not my system): A domain has 5 letters and a .com TLD, so I add the number 5 to the end and 'moc.' to the beginning of the master password. You can easily expand this system for your needs. Works really well for me.
Though, as I get older.. I can feel this ability waning. Thus I am interested in using a password manager - though I feel a little uncomfortable about it as I have never used one before.
Some passwords I keep in a gpg-encrypted textfile.
It also generates great passwords, so now I generate a new pw for each site rather than re-using a handful of common ones.