I have the same problem with a client's HP P1102w wireless LaserJet. I found setting a static IP Address to be a two step procedure as follows:
1) Go to your printer's page let's say and click the "Manual IP" option then enter the Manual IP Address as 192.168.1.104, the Subnet Mask and Default Gateway etc. and save the information.
2) D-Link routers have a way of setting a static IP Address BUT my client's Linksys router cannot set a static IP (maybe other routers cannot either). To stop you router from dynamically assigning your printer's IP of the above example of 192.168.1.104 to some laptop that has just logged-on, change the "DHCP Starting IP Address" to start at: 192.168.1.120. That way your printer will keep its IP Address of 192.168.1.104 and all other computers will have IP Addresses of 192.168.1.120 and above.
I still have a problem with the HP P1102w printer not being "Enabled" periodically (that's a Linux term) but I think there is a conflict between the "Windows Computers" and "Linux Computers". I don't know why because for about 6 months everything operated as expected.