@mgb's answer is good. Especially the points about being able to program without sophisticated debuggers, a knowledge of communications protocols, and knowing your way around an oscilloscope.
To be really comfortable in the embedded world, you should also know how to read a schematic. You don't need to understand the entire circuit, but you do need to understand the digital pieces that you will be controlling.
Understanding protocols includes understanding both the common PHYs and the protocols you will have to write on top of them. You need to understand why you would put different protocols on different PHYs. You should have at least a conversational (and probably much higher) knowledge of SPI, UART, I2C, I2S, Ethernet, WiFi, BlueTooth, other 2.4 GHZ radio devices.
It helps to understand how the Linux kernel boots and some basics about the kernel and how to write drivers as well- As an embedded engineer, I see everything from 8 bit micros to CORTEX A8s cross my desk. In fact, it's helpful to have an idea of some of the different architectures out there and what the plusses and minuses are. Here are some of the one's I see a lot, (although different offices will re-use the chips they re-use over and over again when possible to save design time and library development):
- TI MSP430
- ATMEL 8051 (ATMega, ATTiny, etc)
- Cypress PSoC
- PIC
- Any ARM, including Cortex M3 and Cortex A8
What makes one architecture better than another for any given task? How do they compare in terms of power usage? What about in terms of processing capability. Which chips have decent tools? Which chips are better for prototyping and which for large scale factories and why? Which chips can you run a good OS on? What does a small RTOS offer over Linux and vice-versa? What about a small RTOS vs a bare metal application? In fact even with ARM, some manufacturers have amazing drivers and excellent mainlined kernels and others just don't. Starting to learn which are which can be the difference between a shipping product and one that never leaves the lab.
After working in embedded for a while you start to learn about how much processor, RAM and non-volatile memory you need to do certain projects. When you first get there you should be paying close attention to this.
Of course all the stuff I've listed here is too much to expect someone to learn before they ever start working in embedded, but a lot of it you can become familiar with in advance, and then enhance your knowledge. This is a short list of what it is important to know and pay attention to however to be a good embedded engineer. If you are a good programmer and know a bit about computer architecture and how machines work under the hood, most of this learning will come quickly.