I'll mention a third method just for completeness. It's not that common, but it is fairly easy to start with. Find a 3D editor that comes with a variety of built in primitives: spheres, cylinders, cubes, etc. and build a rough model of the gun. Then, go low level and edit/weld the various verts together to make a mesh out of that. You want to make the mesh since overlapping polygons look bad in realtime game engines.
I'm a big fan of DoGA CGA and Metasequoia LE. So, I'd design the gun in DoGA which uses a parts based system and then save/import that into Meta to clean up the model and make the final mesh. There are a ton of modellers that have that capability some even support boolean operations that allow you to merge or carve shapes out each other.
--
TAZ
"Do you think it is wise to provoke him?" "It's what I do." -- Stargate SG-1