Let me start by saying I have 2 boys and boys are different than girls I hear. My oldest was potty trained at 3, but wasn't so good at night so I didn't push it. At 5 he said he was done and he did great - 1 or 2 accidents.
My youngest was 2 when he said he was done with the whole diaper thing and even refused to wear one at night and maybe had 4 or 5 accidents.
I say it is up to them to tell you, but at the same time it is up to us to prepare them. I limit the fluid intake after 6:30. Even at dinner (at 6:30) I only give them a small drink and then if they want more I give them a tiny bit at a time. I inforce the bathroom and washing of the hands before dinner, the bathroom again before shower (immediately following dinner), and the obvious bathroom trip before bed time (at 8:00). It wasn't until they had both done so good for so long that allowed them to have a sip of water just before bed time.
Honestly - any kid can do it, but it is really up to us to set the stage for success!