Forgiveness is complex. I bought a copy of Forgiveness: A Philosophical Exploration by Charles Griswold. It's more than 200 pages long and includes a lot of good ideas - along with a few lemons.
For example, Griswold talks about the U.S. government giving X amount of money to victims of the WWII Japanese internment, then claiming that everything is now solved. If I remember correctly, the people who received money had to promise they would never sue the government. Moreover, the amount they received was chicken feed compared the homes and valuable farms and businesses some people lost.
But Griswold's book is still worth reading.
Personally, I make a distinction between the personal arena and the political arena.
You really, really don't want bad blood between relatives or close friends, so make an earnest effort towards reconciliation. Romance is even hairier. After all, people who are in love/lust are driven by hormones, right?
So forgive and move on. Or if you can't forgive, then move on, anyway. Don't get stuck in a messy non-relationship, like so many people do.
As for the political arena, imagine a corrupt supervisor who bullies you or a corrupt public official who has you imprisoned - when you committed no crime. Or maybe you're raped or assaulted or whatever.
If your attacker repents, that's great...but are you the only victim?
I make a distinction between good and evil, and if I perceive an individual to be a menace to society - particularly children - they'll get no forgiveness from me.
The key word is justice, or balance. Yes, holding in hate can be bad, but too easily forgiving can be just as bad.
Personally, I hate with a passion, and I find it empowering. But in the personal arena, I have a pretty clean slate. (Fortunately, my relatives aren't corrupt politicians.)
The hardest thing of all may be forgiving yourself, maybe for something you did when you were young and stupid. As Sheldon Kopp said, "Learn to forgive yourself, again and again and again and again."
P.S. I also wanted to comment that society sometimes punishes people even after they've repented in order to set an example for others. If you drive while drunk and kill someone's child, you can apologize all you want, but even if the family of the child forgives you, the neighbors may not want you prowling the streets.