(I'm hoping you were once a cop, right?)
Yes, that's right. I was.
I do think Garak evolved over the series and became a better person over time. If he were a sociopath or nasty through and through such progress would have been impossible. He was a product of a totalitarian system and a father who shaped him to be the "perfect operative", and yet he still retained compassion and remorse. That speaks of a strong character and will. He did change. He did grow. Dukat, on the other hand, never served anyone but himself and never seemed to feel bad for anyone but himself. Even his love for Ziyal seemed to be an extension of self-love.