Every protein is unique, and their different sequences say it all, So there is no general answer to your question. But you can do some bioinformatic analysis like this: Take the sequence of your protein, and do a sequence alignment with any of the protein sequence databases available (Uniprot, etc.). Note those which closely match your protein in sequence, Then get a hold of the reference papers for those proteins to find out how they were purified. Chances are your protein can be purified in the same or very similar way.
A very small protein of less than 3 kDa can probably be purified by size-exclusion chromatography if the contaminants are larger proteins, ion exchange chromatography, or even reverse-phase HPLC with an ion-pairing reagent.
F-U: In my answer above, I assumed that you knew the sequence of your protein. But I missed the fact that it is quite small, i.e., less than 30 amino acids long. In that case you have a polypeptide that can just be synthesized. If you don't know your protein's sequence, then the previous poster's suggestion (A. Shapiro) is the way to go.
We do purification by affinity column followed by size exclusion chromatography in our lab. If the protein is stable, we usually get protein with high purity.
Can you tell us what size the contaminating proteins are?
As Adam has mentioned you can use SEC to purify, but you could also use a 5kD ultrafiltration tube (Millipore -Amicon, Sartorius -Vivaspin and others available in a variety of sizes) to spin the protein through the membrane (PES or Cellulose Acetate) and collect the filtrate. Adding more buffer if you need as high a yield as possible.
Worthwhile testing on a small amount, in an appropriate sized mini spin device, first to ensure that the membrane is compatible and doesn't bind you protein (even low-protein binding membranes do sometimes)
You can then use a 3kD device to concentrate back up to your desired concentration.