For me it was therapy. My counselor--an LCSW--was very good and used a variety of approaches with me including CBT, "inner child" work, and even EMDR.
BTW, I don't know that it matters where the self-hate comes from. Whether it's taught or we were born that way, the problem is real.