Is optoisolation necessary (ideally) when communicating between MCU boards? Maybe even different brands of boards running at maybe different voltages and maybe not sharing the same ground?? E.g. Arduino to Propeller boards to ARM boards?
maybe not sharing the same ground
If there's a real need for not sharing the same ground, an optoisolator is the easiest way to go.
Question is rather : is it possible to tie grounds together ? or why not ...
Opto isolation is a great solution for when grounds can't be shared - however its usually possible (and natural) for grounds to be shared in most cases.
Differing voltages require some solution - either level conversion circuit/chip, open-collector bus, or indeed opto-isolator.
The length of connecting wires influences the choice of signalling scheme too - for long distances you either have to sacrifice speed and use something like serial at lower baudrates (19.2kbaud say, rather than 1Mbaud), or go for a transmission-line technique such as RS485 (or even ethernet)
For 10cm--20cm long wires then you just connect directly (if same voltage) without problems.
Lastly even if grounds can be shared but the environment is electrically noisy (lots of motors/solenoids say), an opto-isolator is great for preventing noise on the ground wiring from causing false signals.
So what is your application - it might need opto-isolators, or that might be overkill.