Only the best questions should be migrated to another site, and in most cases, if an asker doesn't properly research the correct site to ask on, there's a very strong likelihood that there are other problems with the post as well.
Thus, if a question is off-topic on one site, it should really just be closed as off-topic.
"Don't migrate crap" is something that the community managers have been saying for a very long time, and I agree with this guideline. When a question is migrated, if it has issues, it pollutes the target site, and that community now has to try and fix the problems with it. If it gets closed again, it's counted as a rejection on the source site, which can result in the migrate option to that target being removed.
What's more, when a question is migrated back and forth, it can create some undesired behavior, and I recall seeing some bug reports because of this. (I don't have links, so let's just pretend it didn't happen) :).
So, if there's a question that is awesome, but it doesn't fit the source site, and you know it would be a great question for another community, clean it up first. It's the polite thing to do, and it ensures that the target community won't make snap misjudgements about it's quality, write "return to sender" on it, and ship it back to you.
With that said, I do agree with what jonsca says, that it's 50/50. However, if you're going to migrate it, do what you can to help guarantee the migration will be a success. Don't assume the target site will do the heavy lifting.