One of my most effective ways of overcoming procrastination in particular is that when I don't want to do something, I force myself to at least spend two minutes splitting at least one task on my todo list into a few smaller tasks. Sooner or later I have enough really small, trivial tasks that it is easy to push through at least some of them.
Sometimes that ends up with stupid levels of details. But often it ends up revealing that part of the reason for procrastinating was that I didn't really know, but maybe had a nagging suspicion of, the level of complexity in a task...