I prefer the first one myself, because I think it shows better what you are declaring. The bad thing about this is when you declare several pointer on the same line.
int *p1, *p2;
is more consistant than
int* p1, *p2;
But I tend to always declare ( and initilize if possible ) my variables on the same line. So I would write
int* p1;
int* p2;
This might be a problem if you are declaring lots of pointers at the same time. But if you need lots of pointers at the same time, you should probably look into putting them in a vector or some other solution. A function or class with lots of named pointers will probably have a higher chance of bugs and errors.
All in all I think this is just a matter of preference. Like most coding style topics the only thing that's important is that it's consistant. With time you get used to any coding style.