As most of you know, X10 commands are sent as a series of signal bursts coupled to the powerline. Presence of a burst signifies a logic "1", and absence a logic "0". Noise near the X10 carrier frequency can fill in those blank frames, making it impossible for a receiving module to decode the command unless it includes some form of AGC to raise its detection threshold above the background noise level. For an example, please read this report on a Cellet cellphone charger: http://jvde.us/x10/x10_cellet_noise.pdf
Like Dave W said, a device that switches ON by X10, but ignores the X10 OFF command usually means that device is injecting noise onto the powerline, and preventing the switch from decoding the OFF command.
Without something to actually measure noise levels, it can be a frustrating trial and error process to identify noise generators. Likely candidates are CFL and LED lights, small plug-in power modules, and major appliances with variable speed motors, such as washing machines and newer HVAC blowers.
Individual noise sources can be isolated with filters, such as the plug-in X10 XPPF or wire-in XPF to isolate an entire circuit. We offer an Active Noise Reducer to reduce overall noise levels, but even that may not be sufficient if there is a powerful noise source near an X10 device.
We also offer (and even rent) X10 signal meters that can help track down noise sources and signal suckers.