For PC Users there are 2 main emulators of choice, although more are in the works.
I'll add a more complete listing for other formats when i get chance....

    Caprice32 is the 32bit DOS based emulator by Ulrich Doewich and in my opinion the best available for DOS/Win9X PC's. It's also the only emulator to support the Romantic Robot Multiface ROM which when coupled with Insider makes up for the current lack of an inbuilt disassembler.
    Ulrich is now working on version 2.0 of Caprice, check out his website for more details.

    CPC-EMU is written by Marco Veith and is a stable emulator with some useful utilites included.
    It's not the most powerful of the emulators but it's inbuilt disassembler is one of the best and for new users, it's ease of use makes it an ideal starting point.

    CPE was written by Bernnd Schmidt and due to the fact that is written entirely in Assembler it is faster than CPC-EMU and handles things like overscan a lot better.
    Ulrich Doewich was responsible for this version which is to be the last of CPE as Ulrich is now writing a brand new emulator. CPE has excellent sound emulation as well as built in .ZIP support and is one of the best emulators going.

    Arnold is a win9x based CPC/CPC+ emulator written by Kevin Thacker, maintainer of the Amstrad WWW resource.
    Currently in pre-release form, Arnold has decent emulation of the basics but requires a beefy PC as Kev has yet to begin optimizing the code.

    Multi Machine is a win9x based Emulator which supports not only the CPC/CPC+ range but also the ZX80/81, Spectrum, Enterprise & Jupiter Ace range of machines.
    With all these extras you'd maybe expect the emulation to be fairly average but Paul Hodgson has written an excellent Windows based emulator which can only get better.