Whether managing your own session or using PHP sessions, the concepts are the same. When the user first logs in, you check as many environmental variables as are available to you, such as IP address, browser used, etc, and record these values either as session variables if using native sessions or in your database or files if you are managing your own. Then every page request you check the present environmental variables and make sure they match the ones the user logged in with.
As far as security goes, cookies are not a place to store anything but the session ID, whether they are placed by you or by PHP. Persistent cookies, and sometimes session cookies(not by PHP though), are often used to store more information, but not for security purposes. Anything transmitted between the client and server can be sniffed out, which means that if security is important you also need to run SSL at least for when the user logs in and for the entire session if sensitive data is being transmitted.
As far as the user bookmarking a session, that is not really a concern because old sessions should get destroyed which would force such a user to start a new session. I don't see any problem if they re-use the old session ID, they would still need to log in to gain access to member areas.
As far as tutorials, I have not seen one yet that is good enough to follow religiously, but on the other hand I have not seen many that do not have at least ONE good point. Read them all, check out their methods, and adopt the ones that seem to make the most sense.