Okay ladies, this is complicated, but here's what I do. I have a small photo album, about 3x5". In it, whenever I buy new clothing with extra buttons, I put the buttons in their own pocket, with a post-it note as to which garment it belongs to. That way, if I lose a button, I just go to my photo album and find the replacement.
Now, for other buttons - yes, I keep them all. I store them in a plastic drawer unit that was intended for a workshop. Each colour gets a different drawer. I have used them for a number of sewing projects, including 'tieing' a quilt with them by sewing a button every 6".
If I have a lot of one type, I'll string them on some buttonhole thread (or other thick thread) and knot it, to keep them all in one place. That way I can easily tell if I have enough of that type of button. Saves me hours of sorting through buttons.
That's what I do with them! I rarely have to buy buttons for clothes now.