I think the easiest way would be to make cube you want to end up with an emitter. Subdivide it a couple times, then make it the parent of the smaller cubes you want it to be made up of, then activate dupliverts. Scale the smaller cube so that it forms a perfect cube when the copies are duplicated on the emitter (probably best to work in grid units for easier presicion). Set up the particle emitter like you would for an explosion. Then, like the others have said, run a backwards time IPO to reverse the particle effect.
The way the time IPO works could be a tad confusing. Sorry, I;m no that great at explaining things so bear with me. The vertical axis counts the frames of the original animation. The horizontal axis counts the frames of the animation after the Time Ipo takes effect. In this case, find the frames where your explosion starts and ends. The end frame is where the time IPO should start on the vertical axis. The start frame is where it should end. The horizontal space between them is how long the time modified effect will take.
ack, I probably could have worded that better…oh well
about the time IPO, anyone else wish there was on option to toggle it on and off, so you could edit the original animation easily? You can kinda do that by copying the curve to the buffer, deleting, and re-pasting after you’re done, but a toggle feature would be nice