Ok, well I solved the problem on my site, a mistake on my part:
In the general settings for the affected blog I had set the 'WordPress address (URL)' and the 'Blog address (URL)' differently, the first was the short URL (without a www. at the front), and the second had the full URL (www.mydomain.com). In fact I intended the whole blog to be at the second (long) form of the address, and I have a apache config to do a 'premanent redirect' on the short URL that redirects it to the long form.
I assume the two were interacting, and the cookies used to track the login were being set with the wrong domain info, causing a missmatch and preventing them from being used to maintain the login. Setting the two domains in the General Setting identically cured the problem for me.