I would try replacing the nut first. This problem is most often caused by a bad ground (jumps when you push the plastic).
If the batteries are dead they can be ordered at your local Radio Shack or other electronics store. You will need to look at the old batteries to see how many pin connections go through the SI Board to be sure to get the correct replacement. They can have one or two pins in different arrangements.
There is another option to bypass the SI board and solve several different problems. It has been posted on another forum at www.unofficialbmw.com
on the e30 forum. Here is the basic info.
The crossover or jumper is with the SI board completely out, Not just the lights. If you are looking at the sockets where the SI board plugs into the instument cluster then all you need to do is jump the two sockets marked X. This will send the temp signal on to the temp gauge rather than thru the board. All other signals are intact and all lights will work except for the brake lining wear indicator.
Be sure to put the hood on the check light back in even though the SI board will be removed. Otherwise, when the check light comes on it will also illuminate the places where the SI lights used to be.
It's very simple and even a paper clip would probaly work.
-------- -x--x-- SI ByePass