My experience that it is kind of difficult, and it only comes with a (painful) experience. There are number of good books, but things in them probably make most sense if you first try it in practice. You can't really assure compliance by design (if not completely trivial), and thus compliance testing is only way to be sure.
You can get pretty much good estimate with a good spectrum analyzer, but near-field measurements are not often easy to do and require quite a bit of rehearse to learn what is important, since most stuff you'll see this way, are false alarms. One good thing is however, to measure the spectrum of supposedly low-speed signals. It is quite possible that if you drive low-speed signals directly from your MCU, the high-frequency noise in internal VCC rail of the MCU will leak out via low-speed IO-signals and cause emission problems. I have seen that happening quite recently.
In general, good EMI control comes first from suppression, and that involves designing the circuit properly, and equally and even more important, your PCB properly. Shielding comes only after all the suppression things are tried out.
Shielding is not even effective if your EMI comes from common-mode radiation from the cables attached to the board, in that case it is just a waste of money. My experience is that absorber materials work only for relatively high frequencies (hundreds of MHz) while typical SMPS problematic frequencies are typically between 40-200 MHz. Do you have any fast memory buses running on your board, or other wide parallel fast buses (like parallel LVTTL-interfaced color LCD)?
Very basis of good EMI design is clean ground, where you connect all your cables coming from your board. If your ground is dirty, then it is pretty much futile to try anything out. Clear tell-tale of this symptom is that if you disconnect all the cables from the board, your emission level will drop dramatically. My advice is that always over-do the ground of the PCB. Solid ground plane (or several!) is a good basis for a good ground.
Regards,
Janne