Machine independence implies that any program can be used on any machine (regardless of the version, machine language or assembly language). In reality it is used more to mean that a program can be used on two or more machine types but not all machines types.
Take, for instance, the Pascal programming language. This is considered to be highly machine independent due to the number of compliers at interpreters (see http://pascaland.org) which lists over 300 different versions. So while the programming language can be considered to be machine independent, often different compilers and interpreters are needed for different machines.
Therefore a machine independent programming language implies that properly written code in that language can be interpreted (or compiled) for processing by any CPU in any computer, even if the compiler or interpreter is different. This, of course, is not a concern for the developer as the code remains the same as long as a compiler exists for target machines.