I have arranged this article in few key points & each point will help you in understanding what SOAP actually is.
SOAP is just a Communication or Messaging Protocol not a technology.
As I said, SOAP is a protocol, it means that SOAP defines a set of rules which we must follow while creating messages for communication. (Message - Understand this term in last point)
SOAP uses XML based formats for sending & receiving messages.
SOAP is platform independent because it is just a protocol not a technology.
SOAP is an XML based protocol or specifications for messaging between consumer and provider or client and host. i.e. Here client could be a .Net Application and host could be a WCF Service.
WCF uses SOAP protocol on the top of HTTP or TCP or any other protocol.
In SOAP world, Message or Messaging keywords are used quite often. A Message is nothing but just a piece of information. For example, An XML request to WCF service will be a called a Message, the response which we get from server will also be called a Message. And these messages follow SOAP protocol, hence they will be in XML and will be in a particular format as per SOAP guidelines.
You can find more detail about SOAP here.