Read
NASM Manual - Section 3.3 - Effective Addresses.
Wikipedia also has a
useful entry on the topic.
The best source of information, however, is right from the processor manuals provided by AMD or Intel, as they will detail the differences between valid real mode and protected mode effective addresses.
The quick and dirty explanation is: effective addresses are whatever the CPU architecture qualifies as a valid address, whether that means a combination of registers, immediate values, memory values, etc. In short, effective addresses are a means to achieve more complex memory lookups, such as ebx+edx where ebx could be the pointer to an array and edx is the offset from the beginning of the array.
A specific x86 instruction, LEA (Load Effective Address) can also be used to perform multiple calculations in one instruction and need not be related to memory address calculations.