Is it possible to define a content type, a custom column, a list instance and associate the contenttype to the list using xml, all within the same feature or do they need to be seperated into seperate features?
All the best
You should always use appropriate feature scoping. In your scenario you would need:
This is the best way and the best practice to achieve your goal. If they are related then you should add a FeatureActivationDependency as well.