There is one very important part of learning to compose better that hasn't been mentioned here yet - ear training/aural skills.
Actually listening (ear training/aural skills) has been mentioned quite a bit. I think many have been suggesting taking a theory-based knowledge of music and then listening to be able to best identify what it is the song's doing to capture one's attention. It's not enough to just listen, you must listen critically. This doesn't make anything you've said wrong or anything, but I wanted to point out several folks have suggested this as a very useful, if not vital, step in learning how to be a better composer.