For purification, the binding strength of the target protein to the ion exchanger needs to be different (weaker or stronger) than that of most contaminants. If it is stronger, you can wash away contaminants with the flow through and/or low salt buffer, the target protein is then eluted with high salt buffer. If it is weaker, the protein will leave with the flow through and the contaminants stay on the column. The latter mode is rarely used, because it requires larger columns since, alas, in most cases there are more contaminants than target protein.
The binding strength of a protein to an ion exchanger is determined by net charge. If the pH corresponds to the pI of a protein, this protein is uncharged and hence will not bind to any ion exchanger. If the pH is lower (more acidic) than the pI, the protein will bind additional H+ and become positively charged. It will then bind to the negative groups of a cation exchanger (e.g., sulphopropyl -CH2-CH2-CH2-SO3-). If, on the other hand, the pH is higher (more alkaline) than the pI, the protein will lose H+ and become negatively charged. It will then bind to the positively charged anion exchangers (for example, triethyl ammonium -N+(CH2-CH3)3).
For purification, you select the pH your target protein is most stable at, and then you choose an ion exchanger according to its charge at that pH.
Ion exchange chromatography is used for separation of proteins on the basis of their charge. A protein bears a net positive charge when dissolved in a buffer whose pH is less than its pI. Similarly, if a protein is dissolved in a buffer with it's pH higher than the protein, the will bear a net negative charge. So a cation exchanger is used for separation of a protein bearing a net positive charge, and an anion exchanger is used for separation of protein bearing a net negative charge. DEAE-cellulose is aanion exchanger and Carboxy methyl-cellulose is a cation exchanger.