*This is a hugely complicated question based on the style, the instrument and voicing among other things.*  

Generally chords that have more common tones with the chord in the progression makes for a more harmonious sound.  For example C major = CEG, E min = EGC and Amin = ACE, so the shared notes make a harmonious sound happen if you play notes of E minor over C major.  

This is of course generalising massively but It might be a good starting point. 

For a better answer I suggest you specify style, instrument and an example of the type of progression that you want to work over and that'll give us a better grounding to give you advice on!

Jazz books will give you a very thorough analysis of chords, substitutions and chord tones. 

If you're a guitarist, you can do worse than Ted Greene's [Chord Chemistry][1].  There's an entire chapter on chord substitution and enough chord knowledge to last you a lifetime.  For example one guideline is that any basic triad can theoretically be substituted for an extension, though some work better than others.  So over the C major example you could use the notes of C6, Cadd9 or C13 etc.  

**Ultimately your best advisor's are the ones on each side of your head.**  If they like the notes you play, work out why and repeat in other places :)


  [1]: http://www.amazon.co.uk/gp/product/0898986966/ref=as_li_ss_tl?ie=UTF8&camp=1634&creative=19450&creativeASIN=0898986966&linkCode=as2&tag=sheepi-21