Most often, they contain the binary representation of machine instructions of a specific processor, but can also contain an intermediate form that will require the services of an interpreter to be run.
Whether a file is an executable or not is mostly a matter of convention; some operating systems designate executable files by specific naming convention (such as the name ending in a file extension ".exe") or noted alongside the file in its meta-information (such as the execute permission bits under unix-like operating systems).
On most modern architectures, an executable file contains much information which is not part of the program itself, such as information on the environment required to run the program, debugging and symbolic information, or other housekeeping information used by the operating system to prepare the program to be run.
Also, executables contain calls to operating system services in addition to regular machine instructions. This means that executables are usually operating system specific in addition to being processor specific.
Nowadays, the distinction between a program in source form (ultimately meant to be human readable) and in executable form (ultimately meant to be machine readable) is getting less distinct since the act of transforming the former into the latter (by compilation) or interpreting it may be performed implicitly.
Thus, the meaning for the term executable has been usually extended from a file containing machine instruction to any file that can ultimately be executed by the environment without requiring an explicit transformation.
Files containing interpreted language, however, are usually named script files or scripts rather than executables.