Steve,
One method of creating an asteroid colony is to Drill its core out, spin it and then "inflate" it using nukes in the hollow core.
If you want to learn more about the topic, try:
The High Frontier: Human Colonies in Space 3rd Ed. by Gerard K. O'Neill
Publisher: Apogee Books
ISBN: 1-896522-67-X
If you want, I can glean info from the book for you.
Here are some basic stats:
Cylinder: length: 20 miles, diameter: 4 miles, interior surface area: 500 square miles at 1G and could hold several million people.
I'd say that population limit is a bit low since you could build at least 5 stories under the inner surface without getting too high in G (probably wouldn't break 1.1G).
Note that I would allow commercial engines on it. No reason not to but the mass is going to be large enough that they would crawl from location to location.
You can put weapons on them if you wish but I wouldn't want to see it in combat. Any good hit might evacuate the whole thing (talk about collateral damage to population).
I would also like to see the ability to build facilities into it (factories, research centers, space ports, etc.) to give the populations something to do. I would however, require a greater percentage of the population to be devoted to "support".
I want the space colonies to be more expensive that the equivalent ground colony. The thing that makes space colonies cost effective with today's tech is the fact that we are restricted to reaction drives. That makes gravity wells (planets) expensive to get to/from.
I don't know why engines would prevent a mass driver from working (it just takes time to stabilize and make sure the calculations are correct).
In general, as you increase the radius, you decrease the spin speed needed to attain 1G, increase the surface area and widen the "sweet spot" around 1G. You also make it more fragile and less maneuverable.
Also, all of my comments are based on "Newtonian" materials. A station built with Duranium would be very expensive but would be much more robust.