The proper way to render motion blur would be to have a seriers of render targets in an array.. in each render target you would store a previous frmae, so you have a constant string of maybe the last 10 frames...
To show the blur effect you would just render these by alpha blending over a screen-aligned quad, with the oldest frame being the most trasparent.
Re: The cheap render-to-panel trick, I assume that the biggest problem is that amount of blur changes with the framerate. (High framerate means many overwrites per unit time; low framerate means fewer.) I've always wondered -- can you get around this by varying the panel's alpha value with the framerate?