Twitter provides users with an option to send direct messages which can only be read by the person you are sending the message to, however, if you receive a lot of DMs, it definitely becomes difficult to find old messages from users.
The problem is that Twitter does not provide users with an option to search direct messages. This might become painful when you want to look at a message which was sent to you a few weeks or months back. However, you can easily easily archive and search all your direct messages using a neat trick.
The trick involves making sure that Twitter sends all your direct messages to you as an email to an email address by selecting the checkbox under "Settings -> Notices" and using your email service to search for the direct messages.
For example, I use a Gmail email address for Twitter, whenever someone direct messages me, I receive and email. Now to search for the direct message, I simply use the wild card text "twitter-dm*" as the "From" email (this remains constant) and type in the words I am search for the "Has the words" text box.
You could use the same trick with any other email service which provides you with a search option and use the wildcard search as I did with Gmail above provided that your email service supports wildcard characters. It your email service does not provide you with wildcard search, you can open a direct message and copy the email address (which is similar for all DM emails) and use it to search your direct messages from Twitter.