There was a great defintion provided on stack overflow so I will just quote it here:
"In addition to just holding classes, SWCs can also hold media assets. SWCs are used by linking them into existing Flash or Flex projects. Adobe Flash Pro CS4 is the first version of Flash where you could just link in a SWC to a FLA (this is done in the AS3 section of the Flash tab of the Publish Settings). Previously SWCs had to be brought in as components.
SWCs allow for the easy distribution of assets between Flash and Flex (well, the tool is now called Flash Builder, but the framework is still called Flex). We currently use them to build our visual assets in Flash Pro and then use them in a Flex project."