We usually use a CRM (customer relationship management) database. Some of the really big ones are Salesforce and Blackbaud, but there are lots of different options out there. For-profit companies use systems like this to track customers, but within the nonprofit sector (or charity sector as it's often referred to outside of the US) I prefer a database designed for our specific needs so we can track things like volunteerism along with monetary giving. Examples include Neon One, Bloomerang, and Little Green Light, though that's by no means an exhaustive list of options.