Can program FPGA but not PROM on my Spartan-3A dev board
You've got the wrong device.



In order to program the SPI Flash using the indirect JTAG method, you need to right click on the FPGA and select Add BPI/SPI Flash. It'll ask for the device type and your programming files. The type should be SPI Flash M25P16 according to this document, page 106. Then highlight the SPI Flash you just added and select the Program operation. When the Programming Properties comes up, Xilinx recommends you tick the Verify and Erase before programming options. 

These instructions, and more, are available in the Spartan-3A FPGA Starter Kit Board User Guide, the programming instructions for the indirect method start on page 103.

Note:

If the above doesn't work, check your Jumper settings. Taken from the User Guide. Page 103.