There is a lot of things related to music that can help you improve the quality of your music. Of course, many have been listed already. Practice and experimentation are my personal two highest rated. Also upon my experience when playing melodies in your tracks, the proper use of musical scales are almost a must. It keeps your melodies stay in key, and every scale has a unique sound which gives your song a unique feel. However, not understanding that can ruin your song, even if you think it's good, it can sound off to others.
But, a good point that I used when I first started out, get your constant sounds laid out first. Drums, Bass, etc. Once that's finished work on adding melodies, using strings or synths. Alter your constants to create a decent flow. Add accents to the mix, like a short drum roll, or a bell melody, something to spice it up or give it flare. Play around with sound effects, compression, distortion, reverb, chorus, etc. Nearing the finish when you feel you are happy with how it sounds use a mixer to alter and tweak volume levels.
A song with too much of one thing can also ruin itself. The first song I posted here was like that while I was making it. I had some bells that when they played made your eyes shut cause it was overwhelming, but when you tone down some of the volume and then raise others, it really brings out some great sound.
And, now that I'm done with ranting (or almost mindless typing by now) I hope this can help a bit.