Flash Decompiller and
SWF Decompiler (it is usable to have both as none works in 100% of the cases).
Trough keep in mind that during the compilation process some of the data is being erased. You could decompile a .swf to .fla, but you'll find quite a mess inside.
It is usable to fix a banner, but for more complex projects it would be faster to make it from scratch (if you can't, you wouldn't be able to modify the decompilled one either). Not counting the effords to understand someone's logic.