I tend to remember the main point of many theorems, but I often don't remember the details of the statements. When you actually want to use a theorem, you have to look it up.
For example, I know that there's a theorem that the set of homotopy classes of maps $X\to S^1$ is in one-to-one correspondence with the elements of $H^1(X)$, but I have no idea off the top of my head what hypotheses on $X$ are necessary to make this theorem true. For all I know, this may hold for arbitrary topological spaces, there may be some connectedness requirement, or it may even require $X$ to have the homotopy type of a CW complex. What I do know is that this theorem is somewhere in Hatcher's Algebraic Topology, and I would be able to look it up in five minutes or so. (By the way, this is one reason that you should keep around copies of books that you are familiar with. I am much faster at looking things up in Hatcher than I would be with another algebraic topology book.)
For other theorems, it's possible for me to reconstruct the details without looking it up. For example, the Poisson integral formula expresses a holomorphic function inside a disk in terms of the value of the function on the boundary circle. I do not use this theorem often enough to remember it off the top of my head, but I can re-derive it whenever I want using the following procedure:
(1) I know that the value of a holomorphic function in the center of the disk is equal to the average value of the function on the boundary circle. (The same is true of harmonic functions---indeed, the definition of a harmonic function is basically just that this is true for infinitesimal disks.)
(2) I also know that I can use Möbius transformations to map the center to any other point inside the disk in a way that maps the boundary to itself. I'm good at working out the formulas for Möbius transformations, so I can combine this with (1) to find the value of the function at any other point inside the disk.
There are certainly many other ways of deriving the Poisson formula -- you should use whichever one works best for you.
Finally, some theorems are hard to forget. For example, Lagrange's Theorem states that if $G$ is a finite group and $H\leq G$, then the order of $H$ must divide the order of $G$. This theorem is so obvious (picture the cosets), that I've always found it strange that it deserves a name, and I can't imagine ever forgetting that this theorem is true. (That being said, I do sometimes forget the name of this theorem. In particular, it's sometimes hard for me to remember which theorem is Lagrange's Theorem and which theorem is Cauchy's Theorem.)