func_train or whatnot.
Using triggers and filters (http://developer.valvesoftware.com/wiki/Filter_Applications) you can time it so when the plane hits, env_explosions, env_shooters, env_steams and other various FX entities play. Then you can kill the plane once it hits the building and have the env_shooters take care of gibs. (Likewise, you could have the plane made up of multiple func_physboxes which start motion disabled, then once it passes the trigger you can EnableMotion output and then have it break into bits. That would be cool. Might do an example on it.