Shielding is definitely a good way, but the shield termination needs to be well implemented. Running the termination in on a pin and then through a trace to a ground is about the worst way to do it (but mandated by some standards, like DeviceNet). Almost as bad is soldering the shield to a skinny lead and then soldering that to the shell.
To get performance from a shield, it should be grounded to the shell of the connector promptly. This is because the current passing through the shield can become fairly high when you hit a resonance of the cable. Then, any inductance on the shield allows voltage to build, which is then coupled through to the inner leads.
Depending on the type signal you're conveying, a great deal con be done at the circuit board.
If your signal is low frequency, and going into a high impedance, a simple series resistor will typically knock out the noise. A 4.7K resistor is like a brick wall to a 10V/m application. If you need a lower impedance, a 100 ohm, followed by 470pF to ground will likely knock it out.
If your signal is low frequency and going out, a Zobel network is usually a good way to ensure that your driver is stable and interference doesn't come back. Values vary, depending on the frequency of your interference but 220nH inductor with 47 ohms followed by a 220pF capacitor with a 47 ohm series resistor to ground is a good place to start for 30-150MHz. Above this, a series ferrite bead is useful to about 350-400MHz. After that, a small value inductor, such as 20nH.
If you're working with higher bandwidth signals, the common mode choke is your best friend.
One thing that's also good to remember when performing band-aids, is that the smaller the id of a ferrite, the more effective it is. Sometimes, you can slip small beads over individual leads. With flex cables, a slip-on ferrite can help, but the effectiveness on a flex goes down dramatically with width.
For future reference, I suggest the writings of Dan White Consultants and Henry Ott.
Hope something in this helps,
Mike