I don't think cookies (or sessions) make much sense. you'd probably annoy your "good" visitors, while "bad" visitors can easily get around it.
tracking the IP is about the same. there simply is no bulletproof way to identify a user.
the only more or less secure method I can think of is completely disable the account after x login failures in a row. this of course would require some way to re-activate the account, maybe similar to what you do in "forgot password" situations.