Yes, you may use GS to output a primitive to multiple render targets (the DX SDK example does exactly that).
However, it is perfectly fine to render each cube map side separately too. The performance difference may be negligible since GS is typically a performance hog if used to output lots of primitives. I prefer slightly rendering each side separately since then you don't need separate vertex shaders for rendering cube maps / rendering normally. Since cube map render target gives you 6 rendertargetviews, you can render them separately by just selecting the desired target.
There is a function in D3DX to save dds files (may work with cubemaps), but MSDN suggests using DirectXTK with similar function since D3DX is almost deprecated.
 It seems that DirectXTK won't save cubemaps correctly.